add missing skip_typeref, fixing 255.vortex
authorMatthias Braun <matze@braunis.de>
Thu, 13 Mar 2008 22:13:00 +0000 (22:13 +0000)
committerMatthias Braun <matze@braunis.de>
Thu, 13 Mar 2008 22:13:00 +0000 (22:13 +0000)
[r18936]

TODO
ast2firm.c

diff --git a/TODO b/TODO
index 510490c..dc334d8 100644 (file)
--- 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
index c41b1b8..fe08af7 100644 (file)
@@ -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;