http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58944
Sriraman Tallam <tmsriram at google dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bernd.edlinger at hotmail dot de --- Comment #5 from Sriraman Tallam <tmsriram at google dot com> --- This also seems similar to the -mpreferred-stack-boundary issue that Bernd reported recently. Cut and paste from that email: ############################ Currently on trunk the option -mpreferred-stack-boundary does not work together with #pragma GCC target("sse") or __attribute__((target("sse"))). There is already a test case that detects this: gcc.target/i386/fastcall-sseregparm.c Index: gcc/config/i386/i386.c =================================================================== --- gcc/config/i386/i386.c (revision 204101) +++ gcc/config/i386/i386.c (working copy) @@ -4626,6 +4626,9 @@ ix86_valid_target_attribute_p (tree fndecl, memset (&func_options, 0, sizeof (func_options)); init_options_struct (&func_options, NULL); lang_hooks.init_options_struct (&func_options); + if (global_options_set.x_ix86_preferred_stack_boundary_arg) + func_options.x_ix86_preferred_stack_boundary_arg + = global_options.x_ix86_preferred_stack_boundary_arg; cl_optimization_restore (&func_options, TREE_OPTIMIZATION (func_optimize)); #################### I will fix these generically by adding more fields to cl_target_option and restoring from there.