https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87426
Bug ID: 87426 Summary: c_parser_unary_expression ICE Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: SztfG at yandex dot ru Target Milestone: --- testcase: #include <stdio.h> #include <inttypes.h> //#include <stdlib.h> static const uint32_t pow2[511] ={ 0 }; // doesnt matter #define SQR(x) pow2[x] uint16_t mul8b(uint8_t a, uint8_t b) { return (SQR((uint16_t)a+(uint16_t)b) - SQR(abs((int16_t)a-(int16_t)b))) >> 2;; } prog.c: In function 'mul8b': prog.c:12:46: warning: implicit declaration of function 'abs' [-Wimplicit-function-declaration] 12 | return (SQR((uint16_t)a+(uint16_t)b) - SQR(abs((int16_t)a-(int16_t)b))) >> 2;; | ^~~ prog.c:8:21: note: in definition of macro 'SQR' 8 | #define SQR(x) pow2[x] | ^ prog.c:12:3: internal compiler error: Segmentation fault 12 | return (SQR((uint16_t)a+(uint16_t)b) - SQR(abs((int16_t)a-(int16_t)b))) >> 2;; | ^~~~~~ 0xa31cbf crash_signal ../../source/gcc/toplev.c:325 0x5f8606 warn_for_abs ../../source/gcc/c/c-parser.c:9226 0x5f8606 c_parser_postfix_expression_after_primary ../../source/gcc/c/c-parser.c:9318 0x5ea523 c_parser_postfix_expression ../../source/gcc/c/c-parser.c:9006 0x5f2f27 c_parser_unary_expression ../../source/gcc/c/c-parser.c:7266 0x5f416f c_parser_cast_expression ../../source/gcc/c/c-parser.c:7110 0x5f43e6 c_parser_binary_expression ../../source/gcc/c/c-parser.c:6913 0x5f52f5 c_parser_conditional_expression ../../source/gcc/c/c-parser.c:6647 0x5f5830 c_parser_expr_no_commas ../../source/gcc/c/c-parser.c:6564 0x5f5a82 c_parser_expression ../../source/gcc/c/c-parser.c:9460 0x5f7fb7 c_parser_postfix_expression_after_primary ../../source/gcc/c/c-parser.c:9272 0x5ea523 c_parser_postfix_expression ../../source/gcc/c/c-parser.c:9006 0x5f2f27 c_parser_unary_expression ../../source/gcc/c/c-parser.c:7266 0x5f416f c_parser_cast_expression ../../source/gcc/c/c-parser.c:7110 0x5f4580 c_parser_binary_expression ../../source/gcc/c/c-parser.c:7036 0x5f52f5 c_parser_conditional_expression ../../source/gcc/c/c-parser.c:6647 0x5f5830 c_parser_expr_no_commas ../../source/gcc/c/c-parser.c:6564 0x5f5a82 c_parser_expression ../../source/gcc/c/c-parser.c:9460 0x5ea67b c_parser_postfix_expression ../../source/gcc/c/c-parser.c:7968 0x5f2f27 c_parser_unary_expression ../../source/gcc/c/c-parser.c:7266 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.