https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87821
Bug ID: 87821 Summary: pdp11 ICE on overaligned local variable: REG_POINTER used with unexpected rtx code 'const_int' in mark_reg_pointer Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- Compiling the following snippet with a pdp11-aout cross-compiler results in the ICE below. This came up while testing a fix for pr87795. $ cat t.c && /ssd/build/pdp11-aout/gcc-svn/gcc/xgcc -B /ssd/build/pdp11-aout/gcc-svn/gcc -S -Wall t.c #define A 0x10000000 >> 12 void f (void*); void g (void) { __attribute__ ((aligned (A))) int i; // _Static_assert (_Alignof (i) == A); f (&i); } during RTL pass: expand t.c: In function āgā: t.c:5:6: internal compiler error: RTL flag check: REG_POINTER used with unexpected rtx code 'const_int' in mark_reg_pointer, at emit-rtl.c:1460 5 | void g (void) | ^ 0xed5d6d rtl_check_failed_flag(char const*, rtx_def const*, char const*, int, char const*) /ssd/src/gcc/svn/gcc/rtl.c:939 0xa6ad43 mark_reg_pointer(rtx_def*, int) /ssd/src/gcc/svn/gcc/emit-rtl.c:1460 0xa93de2 get_dynamic_stack_base(poly_int<1u, long>, unsigned int) /ssd/src/gcc/svn/gcc/explow.c:1606 0x939180 expand_stack_vars /ssd/src/gcc/svn/gcc/cfgexpand.c:1208 0x93c56b expand_used_vars /ssd/src/gcc/svn/gcc/cfgexpand.c:2281 0x94a9ff execute /ssd/src/gcc/svn/gcc/cfgexpand.c:6268 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.