Re: [PATCH, i386]: Fix PR 67484, asan detects heap-use-after-free with target options

2015-09-16 Thread Richard Biener
And it is initialized via void cl_target_option_save (struct cl_target_option *ptr, struct gcc_options *opts) { if (targetm.target_option.save) targetm.target_option.save (ptr, opts); ptr->x_recip_mask = opts->x_recip_mask; ptr->x_ix86_isa_flags = opts->x_ix86_isa_flags; ptr->x_ix86_f

Re: [PATCH, i386]: Fix PR 67484, asan detects heap-use-after-free with target options

2015-09-16 Thread Richard Biener
I see in gtype-desc.c: void gt_ggc_mx_cl_target_option (void *x_p) { struct cl_target_option * const x = (struct cl_target_option *)x_p; if (ggc_test_and_set_mark (x)) { gt_ggc_m_S ((*x).x_ix86_arch_string); gt_ggc_m_S ((*x).x_ix86_recip_name); gt_ggc_m_S ((*x).x_ix86_tun

Re: [PATCH, i386]: Fix PR 67484, asan detects heap-use-after-free with target options

2015-09-16 Thread Uros Bizjak
On Wed, Sep 16, 2015 at 10:45 AM, Richard Biener wrote: >> As mentioned in the PR, ix86_valid_target_attribute_tree creates >> temporary copies of current options strings and saves *pointers* to >> these copies with build_target_option_node. A couple of lines below, >> these temporary copies are

Re: [PATCH, i386]: Fix PR 67484, asan detects heap-use-after-free with target options

2015-09-16 Thread Richard Biener
On Tue, Sep 15, 2015 at 8:13 PM, Uros Bizjak wrote: > Hello! > > As mentioned in the PR, ix86_valid_target_attribute_tree creates > temporary copies of current options strings and saves *pointers* to > these copies with build_target_option_node. A couple of lines below, > these temporary copies ar

[PATCH, i386]: Fix PR 67484, asan detects heap-use-after-free with target options

2015-09-15 Thread Uros Bizjak
Hello! As mentioned in the PR, ix86_valid_target_attribute_tree creates temporary copies of current options strings and saves *pointers* to these copies with build_target_option_node. A couple of lines below, these temporary copies are freed, leaving dangling pointers in the saved structure. Use