aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <jsm@polyomino.org.uk>2004-09-27 20:33:55 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2004-09-27 20:33:55 +0100
commit5e9bda655cd622a17f1f1397a058847a9c6b38ca (patch)
treebea232c1f5d8bde732375be9c7629cc2679c4b93 /gcc
parent43f51151e2983568f53c011bb19ca9999abfab0d (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/c-typeck.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr13804-1.c28
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'" } */
+}