summaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authormarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-12 15:50:05 +0000
committermarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-12 15:50:05 +0000
commit25faed340686df8d7bb2242dc8d04285976922b6 (patch)
treed8c21743c5863ddf0f3ca4d381a04732f4ce45b7 /gcc/config/i386
parent09a069ef63a70b66b392f732d2d2d0220ca6727e (diff)
downloadgcc-25faed340686df8d7bb2242dc8d04285976922b6.tar.gz
Fix big memory leak in ix86_valid_target_attribute_p
* config/i386/i386.c (ix86_valid_target_attribute_p): Finalize options at the of the function. * gcc.c (driver_get_configure_time_options): Call newly introduced init_opts_obstack. * lto-wrapper.c (main): Likewise. * opts.c (init_opts_obstack): New function. (init_options_struct): Call newly introduced init_opts_obstack. * opts.h (init_options_struct): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230264 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/i386.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 1a6b2fd760e..805f7a88978 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -6237,6 +6237,8 @@ ix86_valid_target_attribute_p (tree fndecl,
DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fndecl) = new_optimize;
}
+ finalize_options_struct (&func_options);
+
return ret;
}