https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93574
--- Comment #1 from Yongheng Chen <changochen1 at gmail dot com> --- Stack dump: --- tt.c:1:26: error: variable or field ‘y’ declared void 1 | struct s { struct { void y ; | ^ tt.c: In function ‘main’: tt.c:7:23: warning: implicit declaration of function ‘sum’ [-Wimplicit-function-declaration] 7 | x = ( ( 6 / ( ( 0 * sum ( 3 , 4 ) + ( 1 , 2 ) ) / 114 / 2 ) / 2 ) ) > 0 & ( x == sizeof ( ( int * ( * ( int f ( struct list ) ) ) [ * * main ] ) 1 ) ) ; | ^~~ tt.c:7:128: warning: ‘struct list’ declared inside parameter list will not be visible outside of this definition or declaration 7 | x = ( ( 6 / ( ( 0 * sum ( 3 , 4 ) + ( 1 , 2 ) ) / 114 / 2 ) / 2 ) ) > 0 & ( x == sizeof ( ( int * ( * ( int f ( struct list ) ) ) [ * * main ] ) 1 ) ) ; | ^~~~ tt.c:7:128: error: size of unnamed array has non-integer type tt.c:7:99: error: cast specifies function type 7 | x = ( ( 6 / ( ( 0 * sum ( 3 , 4 ) + ( 1 , 2 ) ) / 114 / 2 ) / 2 ) ) > 0 & ( x == sizeof ( ( int * ( * ( int f ( struct list ) ) ) [ * * main ] ) 1 ) ) ; | ^ tt.c:7:128: internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in c_expr_sizeof_expr, at c/c-typeck.c:2925 7 | x = ( ( 6 / ( ( 0 * sum ( 3 , 4 ) + ( 1 , 2 ) ) / 114 / 2 ) / 2 ) ) > 0 & ( x == sizeof ( ( int * ( * ( int f ( struct list ) ) ) [ * * main ] ) 1 ) ) ; | ^~~~ 0x7610ae tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) ../../gcc/tree.c:9735 0x625ebb tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) ../../gcc/tree.h:3401 0x625ebb c_expr_sizeof_expr(unsigned int, c_expr) ../../gcc/c/c-typeck.c:2925 0x862167 c_parser_sizeof_expression ../../gcc/c/c-parser.c:8341 0x862167 c_parser_unary_expression ../../gcc/c/c-parser.c:8238 0x862dad c_parser_cast_expression ../../gcc/c/c-parser.c:8108 0x8631b1 c_parser_binary_expression ../../gcc/c/c-parser.c:8034 0x864025 c_parser_conditional_expression ../../gcc/c/c-parser.c:7645 0x864640 c_parser_expr_no_commas ../../gcc/c/c-parser.c:7562 0x8648a1 c_parser_expression ../../gcc/c/c-parser.c:10630 0x85d495 c_parser_postfix_expression ../../gcc/c/c-parser.c:9121 0x86155a c_parser_unary_expression ../../gcc/c/c-parser.c:8266 0x862dad c_parser_cast_expression ../../gcc/c/c-parser.c:8108 0x8631b1 c_parser_binary_expression ../../gcc/c/c-parser.c:8034 0x864025 c_parser_conditional_expression ../../gcc/c/c-parser.c:7645 0x864640 c_parser_expr_no_commas ../../gcc/c/c-parser.c:7562 0x8646ea c_parser_expr_no_commas ../../gcc/c/c-parser.c:7604 0x8648a1 c_parser_expression ../../gcc/c/c-parser.c:10630 0x865047 c_parser_expression_conv ../../gcc/c/c-parser.c:10663 0x85a90b c_parser_statement_after_labels ../../gcc/c/c-parser.c:6294 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. ---