diff options
author | Marek Polacek <polacek@redhat.com> | 2014-10-17 18:53:35 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2014-10-17 18:53:35 +0000 |
commit | d9b7be2ebd0cf4652590c2db4313c8435a9a66a9 (patch) | |
tree | 5864967c12d70d6e72ca16b0a2535367e7f5778b /gcc/testsuite | |
parent | f406ae1fd66cbef7528139d813049d606973b4d2 (diff) | |
download | gcc-d9b7be2ebd0cf4652590c2db4313c8435a9a66a9.zip gcc-d9b7be2ebd0cf4652590c2db4313c8435a9a66a9.tar.gz gcc-d9b7be2ebd0cf4652590c2db4313c8435a9a66a9.tar.bz2 |
re PR c/63543 (incomplete type error should suppress duplicates)
PR c/63543
* c-tree.h (C_TYPE_ERROR_REPORTED): Define.
* c-typeck.c (build_indirect_ref): Don't print the "dereferencing..."
error multiple times. Print the type.
* gcc.dg/pr63543.c: New test.
* gcc.dg/array-8.c: Remove dg-error.
* gcc.dg/pr48552-1.c: Remove and adjust dg-error.
* gcc.dg/pr48552-2.c: Likewise.
From-SVN: r216414
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/array-8.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr48552-1.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr48552-2.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr63543.c | 21 |
5 files changed, 33 insertions, 5 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f9e3458..29ed3e6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2014-10-17 Marek Polacek <polacek@redhat.com> + PR c/63543 + * gcc.dg/pr63543.c: New test. + * gcc.dg/array-8.c: Remove dg-error. + * gcc.dg/pr48552-1.c: Remove and adjust dg-error. + * gcc.dg/pr48552-2.c: Likewise. + +2014-10-17 Marek Polacek <polacek@redhat.com> + PR c/63549 * gcc.dg/pr63549.c: New test. diff --git a/gcc/testsuite/gcc.dg/array-8.c b/gcc/testsuite/gcc.dg/array-8.c index d469a80..2872985 100644 --- a/gcc/testsuite/gcc.dg/array-8.c +++ b/gcc/testsuite/gcc.dg/array-8.c @@ -45,5 +45,4 @@ g (void) sip[0]; /* { dg-error "invalid use of undefined type 'struct si'" } */ /* { dg-error "dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 45 } */ 0[sip]; /* { dg-error "invalid use of undefined type 'struct si'" } */ - /* { dg-error "dereferencing pointer to incomplete type" "incomplete" { target *-*-* } 47 } */ } diff --git a/gcc/testsuite/gcc.dg/pr48552-1.c b/gcc/testsuite/gcc.dg/pr48552-1.c index 877c4c2..4b833fb 100644 --- a/gcc/testsuite/gcc.dg/pr48552-1.c +++ b/gcc/testsuite/gcc.dg/pr48552-1.c @@ -49,5 +49,5 @@ f7 (struct S *x) void f8 (struct S *x) { - __asm volatile ("" : "=r" (*x)); /* { dg-error "dereferencing pointer to incomplete type" "incomplete" } */ -} /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 52 } */ + __asm volatile ("" : "=r" (*x)); /* { dg-error "invalid lvalue in asm output 0" } */ +} diff --git a/gcc/testsuite/gcc.dg/pr48552-2.c b/gcc/testsuite/gcc.dg/pr48552-2.c index a796983..954c411 100644 --- a/gcc/testsuite/gcc.dg/pr48552-2.c +++ b/gcc/testsuite/gcc.dg/pr48552-2.c @@ -49,5 +49,5 @@ f7 (struct S *x) void f8 (struct S *x) { - __asm ("" : "=r" (*x)); /* { dg-error "dereferencing pointer to incomplete type" "incomplete" } */ -} /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 52 } */ + __asm ("" : "=r" (*x)); /* { dg-error "invalid lvalue in asm output 0" } */ +} diff --git a/gcc/testsuite/gcc.dg/pr63543.c b/gcc/testsuite/gcc.dg/pr63543.c new file mode 100644 index 0000000..215b62e --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr63543.c @@ -0,0 +1,21 @@ +/* PR c/63543 */ +/* { dg-do compile } */ + +struct S; +union U; + +int +f1 (struct S *s) +{ + return s->a /* { dg-error "dereferencing pointer to incomplete type .struct S." } */ + + s->b + + s->c; +} + +int +f2 (union U *u) +{ + return u->a /* { dg-error "dereferencing pointer to incomplete type .union U." } */ + + u->a + + u->a; +} |