diff options
author | Joseph Myers <jsm@polyomino.org.uk> | 2004-09-27 20:33:55 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2004-09-27 20:33:55 +0100 |
commit | 5e9bda655cd622a17f1f1397a058847a9c6b38ca (patch) | |
tree | bea232c1f5d8bde732375be9c7629cc2679c4b93 | |
parent | 43f51151e2983568f53c011bb19ca9999abfab0d (diff) | |
download | gcc-5e9bda655cd622a17f1f1397a058847a9c6b38ca.zip gcc-5e9bda655cd622a17f1f1397a058847a9c6b38ca.tar.gz gcc-5e9bda655cd622a17f1f1397a058847a9c6b38ca.tar.bz2 |
re PR c/13804 (Error message enhancement Request)
PR c/13804
* c-typeck.c (build_component_ref): Name type involved in
diagnostic for structure or union without a member of the given
name.
testsuite:
* gcc.dg/pr13804-1.c: New test.
From-SVN: r88195
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-typeck.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr13804-1.c | 28 |
4 files changed, 41 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 623ad70..8c0e629 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-09-27 Joseph S. Myers <jsm@polyomino.org.uk> + + PR c/13804 + * c-typeck.c (build_component_ref): Name type involved in + diagnostic for structure or union without a member of the given + name. + 2004-09-27 DJ Delorie <dj@redhat.com> * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common): diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 7d36e7b..d744296 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -1466,8 +1466,7 @@ build_component_ref (tree datum, tree component) if (!field) { - error ("%s has no member named %qs", - code == RECORD_TYPE ? "structure" : "union", + error ("%qT has no member named %qs", type, IDENTIFIER_POINTER (component)); return error_mark_node; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 092fb98..eb4165c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-27 Joseph S. Myers <jsm@polyomino.org.uk> + + PR c/13804 + * gcc.dg/pr13804-1.c: New test. + 2004-09-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> PR fortran/16938 diff --git a/gcc/testsuite/gcc.dg/pr13804-1.c b/gcc/testsuite/gcc.dg/pr13804-1.c new file mode 100644 index 0000000..2dbd731 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr13804-1.c @@ -0,0 +1,28 @@ +/* Diagnostics for attempts to access a member not in a structure or + union should name the type involved. Bug 13804. */ +/* Origin: Joseph Myers <jsm@polyomino.org.uk> */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +struct s0 { int a; }; +union u0 { long b; }; +typedef struct s0 S0; +typedef union u0 U0; + +struct s0 x0; +S0 x1; +union u0 x2; +U0 x3; +struct s0 *x4; +union u0 *x5; + +void +f (void) +{ + x0.c; /* { dg-error "error: 'struct s0' has no member named 'c'" } */ + x1.c; /* { dg-error "error: 'S0' has no member named 'c'" } */ + x2.c; /* { dg-error "error: 'union u0' has no member named 'c'" } */ + x3.c; /* { dg-error "error: 'U0' has no member named 'c'" } */ + x4->c; /* { dg-error "error: 'struct s0' has no member named 'c'" } */ + x5->c; /* { dg-error "error: 'union u0' has no member named 'c'" } */ +} |