From: Matthias Braun Date: Thu, 13 Mar 2008 22:13:00 +0000 (+0000) Subject: add missing skip_typeref, fixing 255.vortex X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=af68c03294e66240e0fc7d212b5117f81684f893;p=cparser add missing skip_typeref, fixing 255.vortex [r18936] --- diff --git a/TODO b/TODO index 510490c..dc334d8 100644 --- a/TODO +++ b/TODO @@ -37,4 +37,16 @@ ast2firm: Missing Warnings: * dead assignments (int x = 5; x = bla(); -> dead assignment at x = 5;) * unused label -* + + +Spec-Status: +(only test datasets tried yet) +164.gzip: works +175.vpr: works +181.mcf: works +186.crafty: works (~though an asm is replaced with a stub) +253.perlbmk: not ok +254.gap: not ok +255.vortex: works +256.bzip2: works +300.twolf: works diff --git a/ast2firm.c b/ast2firm.c index c41b1b8..fe08af7 100644 --- a/ast2firm.c +++ b/ast2firm.c @@ -1912,6 +1912,8 @@ static ir_node *unary_expression_to_firm(const unary_expression_t *expression) node = do_strict_conv(dbgi, node); return node; } else { + /* make sure firm type is constructed */ + (void) get_ir_type(type); return value_node; } } @@ -3265,6 +3267,8 @@ static ir_initializer_t *create_ir_initializer_list( static ir_initializer_t *create_ir_initializer_string( const initializer_string_t *initializer, type_t *type) { + type = skip_typeref(type); + size_t string_len = initializer->string.size; assert(type->kind == TYPE_ARRAY && type->array.size_constant); size_t len = type->array.size;