Hi! While -falign-{functions,jumps,labels,loops} are marked Optimization, -falign-{functions,jumps,labels,loops}= are not. They use the same Var(), for that it makes no difference, but it means we reject them in optimize attribute starting with r237174.
Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2018-01-30 Jakub Jelinek <ja...@redhat.com> PR c/84100 * common.opt (falign-functions=, falign-jumps=, falign-labels=, falign-loops=): Add Optimization flag. * gcc.dg/pr84100.c: New test. --- gcc/common.opt.jj 2018-01-18 21:11:58.664207128 +0100 +++ gcc/common.opt 2018-01-30 14:53:25.091842202 +0100 @@ -954,7 +954,7 @@ Common Report Var(align_functions,0) Opt Align the start of functions. falign-functions= -Common RejectNegative Joined UInteger Var(align_functions) +Common RejectNegative Joined UInteger Var(align_functions) Optimization flimit-function-alignment Common Report Var(flag_limit_function_alignment) Optimization Init(0) @@ -964,21 +964,21 @@ Common Report Var(align_jumps,0) Optimiz Align labels which are only reached by jumping. falign-jumps= -Common RejectNegative Joined UInteger Var(align_jumps) +Common RejectNegative Joined UInteger Var(align_jumps) Optimization falign-labels Common Report Var(align_labels,0) Optimization UInteger Align all labels. falign-labels= -Common RejectNegative Joined UInteger Var(align_labels) +Common RejectNegative Joined UInteger Var(align_labels) Optimization falign-loops Common Report Var(align_loops,0) Optimization UInteger Align the start of loops. falign-loops= -Common RejectNegative Joined UInteger Var(align_loops) +Common RejectNegative Joined UInteger Var(align_loops) Optimization fargument-alias Common Ignore --- gcc/testsuite/gcc.dg/pr84100.c.jj 2018-01-30 15:01:59.243703278 +0100 +++ gcc/testsuite/gcc.dg/pr84100.c 2018-01-30 15:00:30.569726685 +0100 @@ -0,0 +1,14 @@ +/* PR c/84100 */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +void bar (void); + +__attribute__((optimize ("align-loops=16", "align-jumps=16", + "align-labels=16", "align-functions=16"))) +void +foo (void) +{ /* { dg-bogus "bad option" } */ + for (int i = 0; i < 1024; ++i) + bar (); +} Jakub