diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-10 21:50:10 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-10 21:50:10 +0000 |
| commit | 6fff0335f84b4fbc80fe510b02694c2bb4c2d73b (patch) | |
| tree | 19d0a572c3e27e5190c6222479a445537eaaf039 /gcc | |
| parent | d20ef498d9e65d6d7f33e075e926df7b22d346cc (diff) | |
| download | ppe42-gcc-6fff0335f84b4fbc80fe510b02694c2bb4c2d73b.tar.gz ppe42-gcc-6fff0335f84b4fbc80fe510b02694c2bb4c2d73b.zip | |
PR c/6809
* print-rtl.c (print_mem_expr): Don't crash on unnamed fields.
* gcc.dg/20020530-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54463 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -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 fd4663b875f..347b5bacc13 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 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 (" <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 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 <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 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; +} |

