https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88134

--- Comment #5 from Arseny Solokha <asolokha at gmx dot com> ---
And if my guess that the problem is somehow related to the handling of FPU-less
cores in the rs6000 and powerpcspe backends is correct, than I see whan might
be another manifestation of that issue:

% powerpc-e300c3-linux-gnu-gcc-9.0.0-alpha20181118 -mcpu=e300c2 --param
ggc-min-expand=3 --param ggc-min-heapsize=1024 -c
gcc/testsuite/gcc.dg/pr65345-3.c
gcc/testsuite/gcc.dg/pr65345-3.c:18:12: error: initializer element is not
constant
   18 | float c1 = i; /* { dg-error "initializer element is not constant" } */
      |            ^
gcc/testsuite/gcc.dg/pr65345-3.c:19:12: error: initializer element is not
constant
   19 | float c2 = (i ? 1 : 2); /* { dg-error "initializer element is not
constant" } */
      |            ^
gcc/testsuite/gcc.dg/pr65345-3.c:20:7: error: variably modified 'c3' at file
scope
   20 | float c3[(int) i]; /* { dg-error "variably modified" } */
      |       ^~
gcc/testsuite/gcc.dg/pr65345-3.c:21:12: error: initializer element is not
constant
   21 | float c4 = 0 || i; /* { dg-error "initializer element is not constant"
} */
      |            ^
gcc/testsuite/gcc.dg/pr65345-3.c:22:1: internal compiler error: Segmentation
fault
   22 | float c5 = (i += 10); /* { dg-error "initializer element is not
constant" } */
      | ^~~~~
0xd16576 crash_signal
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/toplev.c:325
0xfc99af contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/tree.h:3267
0xfc99af build_call_expr_loc_array(unsigned int, tree_node*, int, tree_node**)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/tree.c:11278
0xfc9c11 build_call_expr(tree_node*, int, ...)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/tree.c:11328
0x10488e3 rs6000_atomic_assign_expand_fenv
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/config/rs6000/rs6000.c:38296
0x7a6a18 build_atomic_assign
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-typeck.c:4210
0x7b55e2 build_modify_expr(unsigned int, tree_node*, tree_node*, tree_code,
unsigned int, tree_node*, tree_node*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-typeck.c:6186
0x7cf936 c_parser_expr_no_commas
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:6632
0x7cfa5e c_parser_expression
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:9486
0x7c38fb c_parser_postfix_expression
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:7991
0x7cd1fa c_parser_unary_expression
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:7289
0x7cdf07 c_parser_cast_expression
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:7133
0x7ce154 c_parser_binary_expression
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:6936
0x7cf07b c_parser_conditional_expression
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:6670
0x7cf73b c_parser_expr_no_commas
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:6587
0x7d47bb c_parser_initializer
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:4547
0x7e1186 c_parser_declaration_or_fndef
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:2129
0x7e8c77 c_parser_external_declaration
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:1651
0x7e9341 c_parser_translation_unit
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:1532
0x7e9341 c_parse_file()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c/c-parser.c:19609

Reply via email to