https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93573
--- Comment #1 from Yongheng Chen <changochen1 at gmail dot com> --- Stack dump: --- tt.c:1:5: error: ‘f1’ declared as function returning a function 1 | int f1 ( char * p ) ( ) { int x ; | ^~ tt.c: In function ‘f1’: tt.c:4:9: warning: implicit declaration of function ‘sum’ [-Wimplicit-function-declaration] 4 | if ( ( sum ( 1 , 2 ) / 2 ) != 1 ) return 1 ; | ^~~ tt.c:5:60: error: size of array ‘X’ has non-integer type 5 | if ( - ( 2 * sum ( 3 , 4 ) + sum ( ( union foo { int i , X [ 2 ] [ - ( 100.000000 / 2 ) * 2 ] , k ; | ^ tt.c:7:34: error: field ‘f1’ declared as a function 7 | float ( * f1 ( int a , int b ) ) ( int c , int b ) ; | ^~ tt.c:5:32: internal compiler error: in force_constant_size, at gimplify.c:733 5 | if ( - ( 2 * sum ( 3 , 4 ) + sum ( ( union foo { int i , X [ 2 ] [ - ( 100.000000 / 2 ) * 2 ] , k ; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 | char * p ; | ~~~~~~~~~~ 7 | float ( * f1 ( int a , int b ) ) ( int c , int b ) ; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 | } ) p , 2 ) ) != 0 - 4 ) return 1 ; | ~~~~~~~~~~~~~ 0x69d4dc force_constant_size ../../gcc/gimplify.c:733 0xb1b637 gimple_add_tmp_var(tree_node*) ../../gcc/gimplify.c:771 0xae9287 create_tmp_var(tree_node*, char const*) ../../gcc/gimple-expr.c:485 0xb2d5df create_tmp_from_val ../../gcc/gimplify.c:561 0xb2d5df lookup_tmp_var ../../gcc/gimplify.c:582 0xb2d5df internal_get_tmp_var ../../gcc/gimplify.c:635 0xb26ccf get_formal_tmp_var(tree_node*, gimple**) ../../gcc/gimplify.c:663 0xb26ccf gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:14582 0xb287c6 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:14030 0xb314b4 gimplify_expr ../../gcc/gimplify.c:14628 0xb33335 gimplify_call_expr ../../gcc/gimplify.c:3497 0xb28467 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13553 0xb27790 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:14350 0xb27757 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:14348 0xb3cdbb gimplify_cond_expr ../../gcc/gimplify.c:4177 0xb27ece gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:13538 0xb2af96 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6822 0xb2885b gimplify_statement_list ../../gcc/gimplify.c:1869 0xb2885b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gimplify.c:14025 0xb2af96 gimplify_stmt(tree_node**, gimple**) ../../gcc/gimplify.c:6822 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ---