--- gpc-options.h.orig Tue May 18 21:30:26 2004 +++ gpc-options.h Mon Sep 6 19:01:55 2004 @@ -115,7 +115,7 @@ initializer doesn't compile. The limits can be increased when necessary. */ const char *src[7]; - const char *dest[20]; + const char *dest[21]; } lang_option_map[] = { { @@ -143,6 +143,7 @@ "-fno-exact-compare-strings", "-fno-double-quoted-strings", "-ffield-widths", + "-Wcast-align", "-Wobject-assignment", "-Wtyped-const", "-Wnear-far", @@ -204,6 +205,7 @@ "-fdouble-quoted-strings", "-fno-field-widths", "-fmethods-always-virtual", + "-Wcast-align", "-Wobject-assignment", "-Wno-typed-const", "-Wno-underscore", @@ -217,6 +219,7 @@ }, { "-fno-ignore-packed", + "-Wcast-align", 0 } }, @@ -228,6 +231,7 @@ }, { "-fignore-packed", + "-Wno-cast-align", 0 } }, @@ -273,6 +277,7 @@ "-fdouble-quoted-strings", "-fno-field-widths", "-fno-methods-always-virtual", + "-Wcast-align", "-Wobject-assignment", "-Wtyped-const", "-Wnear-far", @@ -286,6 +291,7 @@ 0 }, { + "-Wcast-align", "-Wparentheses", "-Wswitch", "-Wunused", --- options.c.orig Mon Sep 6 18:58:30 2004 +++ options.c Mon Sep 6 18:58:35 2004 @@ -522,6 +522,10 @@ inhibit_warnings = 0; else if (OPT ("-Wno-warnings")) inhibit_warnings = 1; + else if (OPT ("-Wcast-align")) + warn_cast_align = 1; + else if (OPT ("-Wno-cast-align")) + warn_cast_align = 0; else if (OPT ("-Wparentheses")) co->warn_parentheses = 1; else if (OPT ("-Wno-parentheses")) --- expressions.c.orig Tue Jun 22 04:44:14 2004 +++ expressions.c Mon Sep 6 19:00:09 2004 @@ -3028,7 +3028,7 @@ #endif /* Warn about possible alignment problems. */ - if (!(co->pascal_dialect & B_D_PASCAL) + if (warn_cast_align && TREE_CODE (type) == POINTER_TYPE && TREE_CODE (otype) == POINTER_TYPE && TREE_CODE (TREE_TYPE (otype)) != VOID_TYPE --- declarations.c.orig Mon Sep 6 18:52:17 2004 +++ declarations.c Mon Sep 6 19:00:07 2004 @@ -2941,7 +2941,7 @@ { int indirect = 0; tree address = build_pascal_unary_op (ADDR_EXPR, init); - if (!(co->pascal_dialect & B_D_PASCAL) + if (warn_cast_align && TREE_CODE (TREE_TYPE (init)) != VOID_TYPE && TREE_CODE (TREE_TYPE (init)) != FUNCTION_TYPE && TYPE_ALIGN (type) > TYPE_ALIGN (TREE_TYPE (init)))