OSDN Git Service

* c-decl.c (diagnose_mismatched_decls): Give error for duplicate
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 May 2010 20:47:16 +0000 (20:47 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 May 2010 20:47:16 +0000 (20:47 +0000)
commitce3765bf44e49ef0568a1ad4a0b7f807591d6412
tree83fb32a9434ffd3ff6d6985dd79f64b42099c036
parent19b36054f7952eb7d76005fcd30d7647636968f5
* c-decl.c (diagnose_mismatched_decls): Give error for duplicate
typedefs with different but compatible types.  Allow duplicate
typedefs with the same type except for pedantic non-C1X, but give
warning for variably modified types.
* c-typeck.c (tagged_types_tu_compatible_p,
function_types_compatible_p, type_lists_compatible_p,
comptypes_internal): Add parameter different_types_p; set
*different_types_p for different but compatible types.  All
callers changed.
(comptypes_check_different_types): New.
* c-tree.h (comptypes_check_different_types): Declare.

testsuite:
* gcc.dg/c1x-typedef-1.c, gcc.dg/c1x-typedef-2.c,
gcc.dg/c90-typedef-1.c, gcc.dg/c99-typedef-1.c: New tests.
* gcc.dg/decl-8.c: Use -std=gnu89 -pedantic-errors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159767 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/c-decl.c
gcc/c-tree.h
gcc/c-typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/c1x-typedef-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c1x-typedef-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c90-typedef-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c99-typedef-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/decl-8.c