This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/17051] [3.5 Regression] ICE: internal compiler error: verify_ssa failed.for SSA_NAME: l_addr<D8610>_650
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Aug 2004 00:39:30 -0000
- Subject: [Bug tree-optimization/17051] [3.5 Regression] ICE: internal compiler error: verify_ssa failed.for SSA_NAME: l_addr<D8610>_650
- References: <20040816190449.17051.green@redhat.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-08-17 00:39 -------
Confirmed, reduced to this:
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef uint16_t Elf32_Half;
typedef uint32_t Elf32_Word;
typedef int32_t Elf32_Sword;
typedef uint32_t Elf32_Addr;
typedef uint16_t Elf32_Section;
typedef struct
{
Elf32_Word st_name;
Elf32_Addr st_value;
Elf32_Word st_size;
unsigned char st_info;
unsigned char st_other;
Elf32_Section st_shndx;
} Elf32_Sym;
typedef struct
{
Elf32_Addr r_offset;
Elf32_Word r_info;
} Elf32_Rel;
typedef struct
{
Elf32_Sword d_tag;
union
{
Elf32_Word d_val;
Elf32_Addr d_ptr;
} d_un;
} Elf32_Dyn;
struct link_map;
struct elf32_fdpic_loadseg
{
Elf32_Addr addr;
Elf32_Addr p_vaddr;
Elf32_Word p_memsz;
};
struct elf32_fdpic_loadaddr {
struct elf32_fdpic_loadmap *map;
void *got_value;
};
struct link_map
{
struct elf32_fdpic_loadaddr l_addr;
Elf32_Dyn *l_info[1];
struct r_found_version *l_versions;
};
struct r_found_version { const char *name; };
extern struct link_map _dl_rtld_map;
void
elf_dynamic_do_rel (struct link_map *map,
Elf32_Addr reladdr, Elf32_Addr relsize,
int lazy)
{
const Elf32_Rel *r = (const void *) reladdr;
const Elf32_Rel *end = (const void *) (reladdr + relsize);
struct elf32_fdpic_loadaddr l_addr = map->l_addr;
if (lazy)
elf_machine_lazy_rel (l_addr);
else
{
const Elf32_Sym *const symtab = (const void *) (((Elf32_Addr)
(__reloc_pointer ((void*)((map->l_info[6]->d_un.d_ptr)),
((map->l_addr)).map))));
Elf32_Word nrelative = (map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))] == ((void *)0)
? 0 : map->l_info[(34 + 0 + (0x6fffffff - (0x6ffffffa)))]->d_un.d_val);
const Elf32_Rel *relative = r;
r = r + (((nrelative)<(relsize / sizeof (Elf32_Rel)))?(nrelative):(relsize / sizeof (Elf32_Rel)));
if (map != &_dl_rtld_map)
elf_machine_rel_relative (l_addr, relative, (void *) ((Elf32_Addr) (__reloc_pointer ((void*)((relative
->r_offset)), ((l_addr)).map))));
const Elf32_Half *const version = (const void *) (((Elf32_Addr)
(__reloc_pointer ((void*)((map->l_info[(34 + 0 + (0x6fffffff -
(0x6ffffff0)))]->d_un.d_ptr)),((map->l_addr)).map))));
Elf32_Half ndx = version[((r->r_info) >> 8)] & 0x7fff;
elf_machine_rel (map, r, &symtab[((r->r_info) >> 8)],
&map->l_versions[ndx],
(void *) ((Elf32_Addr) (__reloc_pointer ((void*)((r->r_offset)), ((l_addr)).map))));
}
}
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
GCC target triplet|frv-elf |
Last reconfirmed|0000-00-00 00:00:00 |2004-08-17 00:39:30
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17051