From: Joseph Myers Date: Mon, 27 Sep 2004 19:33:55 +0000 (+0100) Subject: re PR c/13804 (Error message enhancement Request) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5e9bda655cd622a17f1f1397a058847a9c6b38ca;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 623ad706e8d..8c0e62927b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-09-27 Joseph S. Myers + + 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 * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common): diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 7d36e7bdde1..d744296aa13 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 092fb986ecf..eb4165c93b3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-27 Joseph S. Myers + + PR c/13804 + * gcc.dg/pr13804-1.c: New test. + 2004-09-27 Tobias Schlueter 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 00000000000..2dbd731fd69 --- /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 */ +/* { 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'" } */ +}