+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):
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;
}
+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
--- /dev/null
+/* 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'" } */
+}