X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=driver%2Ffirm_opt.c;h=c37c87add667cfbc80bc5a1ccbb6259d3610b7e2;hb=22d24ddd2209686fa723a62ccc19b7c2eea2d172;hp=2a8540311f5e51c8419e529aacf30773dc29229b;hpb=73457fb37203a562f27f45630377dba287a55512;p=cparser diff --git a/driver/firm_opt.c b/driver/firm_opt.c index 2a85403..c37c87a 100644 --- a/driver/firm_opt.c +++ b/driver/firm_opt.c @@ -2,7 +2,7 @@ * * @file firm_opt.c -- Firm-generating back end optimizations. * - * (C) 2005-2007 Michael Beck beck@ipd.info.uni-karlsruhe.de + * (C) 2005-2009 Michael Beck beck@ipd.info.uni-karlsruhe.de * * $Id$ */ @@ -217,7 +217,7 @@ static void rts_map(void) { { &rts_entities[rts_strcpy], i_mapper_strcpy }, { &rts_entities[rts_strlen], i_mapper_strlen }, { &rts_entities[rts_memcpy], i_mapper_memcpy }, - { &rts_entities[rts_mempcpy], i_mapper_mempcpy }, + { &rts_entities[rts_mempcpy], i_mapper_mempcpy }, { &rts_entities[rts_memmove], i_mapper_memmove }, { &rts_entities[rts_memset], i_mapper_memset }, { &rts_entities[rts_memcmp], i_mapper_memcmp } @@ -643,6 +643,10 @@ static int compute_type_size(ir_type *ty) ir_type *ent_ty = get_entity_type(ent); unsigned align, misalign; + /* inner functions do not expand the frame */ + if (is_Method_type(ent_ty) && is_frame_type(ty)) + continue; + /* compute member types */ if (! compute_type_size(ent_ty)) return 0;