In explow.c, there's this code: if (GET_CODE (x) == SYMBOL_REF) { align = BITS_PER_UNIT; if (SYMBOL_REF_DECL (x) && DECL_P (SYMBOL_REF_DECL (x))) align = DECL_ALIGN (SYMBOL_REF_DECL (x)); }
If SYMBOL_REF_DECL(x) is a FUNCTION_DECL, DECL_ALIGN() does not have valid data, so this code will cause the alignment of a function's MEM to be set to random data. -- Summary: explow.c references DECL_ALIGN of a FUNCTION_DECL Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: geoffk at gcc dot gnu dot org GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32617