------- Comment #4 from rguenth at gcc dot gnu dot org 2010-09-03 13:43 ------- Reduced testcase:
typedef struct { unsigned int p_vaddr; } Elf32_Phdr; typedef struct { int d_tag; } Elf32_Dyn; typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__))); int _Unwind_IteratePhdrCallback (const Elf32_Phdr *p_dynamic, _Unwind_Ptr load_base) { Elf32_Dyn *dyn = (Elf32_Dyn *) ((p_dynamic->p_vaddr) + (load_base)); for (; dyn->d_tag != 0 ; dyn++) if (dyn->d_tag == 3) return 0; return 1; } pr45519.3.i: In function '_Unwind_IteratePhdrCallback': pr45519.3.i:11:1: error: Invalid first operand of MEM_REF. D.2729_7 pr45519.3.i:11:1: note: in statement D.2745_1 = &MEM[(struct Elf32_Dyn *)D.2729_7 + 4B]; pr45519.3.i:11:1: internal compiler error: verify_stmts failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Other reduced testcase: typedef struct { unsigned int p_vaddr; } Elf32_Phdr; typedef struct { int d_tag; } Elf32_Dyn; int _Unwind_IteratePhdrCallback (const Elf32_Phdr *p_dynamic, unsigned int load_base) { Elf32_Dyn *dyn = (Elf32_Dyn *) ((p_dynamic->p_vaddr) + (load_base)); for (; dyn->d_tag != 0 ; dyn++) if (dyn->d_tag == 3) return 0; return 1; } pr45519.3.i:4:1: internal compiler error: in build2_stat, at tree.c:3724 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45519