diff options
author | Jakub Jelinek <jakub@redhat.com> | 2002-06-10 23:50:10 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2002-06-10 23:50:10 +0200 |
commit | 50f30e6b07fbc68fefb6ecf1e585f8087c21715d (patch) | |
tree | 19d0a572c3e27e5190c6222479a445537eaaf039 | |
parent | 156755acc094b11f5f26644888536feb519c5036 (diff) | |
download | gcc-50f30e6b07fbc68fefb6ecf1e585f8087c21715d.zip gcc-50f30e6b07fbc68fefb6ecf1e585f8087c21715d.tar.gz gcc-50f30e6b07fbc68fefb6ecf1e585f8087c21715d.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/print-rtl.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/20020530-1.c | 20 |
4 files changed, 30 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd4663b..347b5ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2002-06-10 Jakub Jelinek <jakub@redhat.com> + PR c/6809 + * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. + +2002-06-10 Jakub Jelinek <jakub@redhat.com> + PR optimization/6842 * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode operand subreg cannot be simplified. diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index da8a052..f4c92d4 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 (" <variable>", 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 a0a0de5..91db3bc 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 <roger@eyesopen.com> * 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 0000000..b2d0ecd --- /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; +} |