From: Jakub Jelinek Date: Mon, 10 Jun 2002 21:50:10 +0000 (+0200) Subject: re PR c/6809 (GCC 3.1 cc1 crashes if -fverbose-asm is specified) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=50f30e6b07fbc68fefb6ecf1e585f8087c21715d;p=gcc.git re PR c/6809 (GCC 3.1 cc1 crashes if -fverbose-asm is specified) PR c/6809 * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. * gcc.dg/20020530-1.c: New test. From-SVN: r54463 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd4663b875f..347b5bacc13 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-06-10 Jakub Jelinek + + PR c/6809 + * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. + 2002-06-10 Jakub Jelinek PR optimization/6842 diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index da8a0520a05..f4c92d4ca62 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -88,8 +88,9 @@ print_mem_expr (outfile, expr) print_mem_expr (outfile, TREE_OPERAND (expr, 0)); else fputs (" ", outfile); - fprintf (outfile, ".%s", - IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (expr, 1)))); + if (DECL_NAME (TREE_OPERAND (expr, 1))) + fprintf (outfile, ".%s", + IDENTIFIER_POINTER (DECL_NAME (TREE_OPERAND (expr, 1)))); } else if (DECL_NAME (expr)) fprintf (outfile, " %s", IDENTIFIER_POINTER (DECL_NAME (expr))); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a0a0de58aae..91db3bc36ab 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -6,6 +6,8 @@ * gcc.dg/20020531-1.c: New test. + * gcc.dg/20020530-1.c: New test. + 2002-06-07 Roger Sayle * gcc.dg/20020607-2.c: New test case. diff --git a/gcc/testsuite/gcc.dg/20020530-1.c b/gcc/testsuite/gcc.dg/20020530-1.c new file mode 100644 index 00000000000..b2d0ecda511 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20020530-1.c @@ -0,0 +1,20 @@ +/* PR c/6809 + Test -fverbose-asm with unnamed fields. */ +/* { dg-do compile } */ +/* { dg-options "-fverbose-asm" } */ + +typedef union U +{ + struct + { + unsigned int a; + int b; + }; + long long c; +} *T; + +int foo (T x) +{ + int r = x->a + x->b; + return r; +}