This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Regressions from Re: [PATCH] remove the unsigned_type language hook
- From: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- To: espindola at google dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 14 May 2007 22:24:16 +0200
- Subject: Regressions from Re: [PATCH] remove the unsigned_type language hook
> Date: Thu, 3 May 2007 10:42:17 +0100
> From: "Rafael Espindola" <espindola@google.com>
> The attached patch removes the remaining parts of the unsigned_type
> language hook. It depends on my previous patch that adds a default
> implementation.
>
> Compiled and regression tested with all languages (including ada).
I guess something was flawed in your regression testing,
comparing old logs or something.
> OK for trunk?
>
> gcc/ada/ChangeLog
> * gcc/ada/gigi.h (gnat_unsigned_type): Remove.
> * gcc/ada/misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
> * gcc/ada/trans.c (gnat_to_gnu): Use get_unsigned_type instead of
> gnat_unsigned_type.
> (convert_with_check): Likewise.
> * gcc/ada/utils.c (gnat_unsigned_type): Remove.
>
> gcc/ChangeLog
> * gcc/c-common.c (warnings_for_convert_and_check): Use
> get_unsigned_type instead of c_common_unsigned_type
> (c_common_unsigned_type): Remove.
> (shorten_compare): Use
> c_common_signed_or_unsigned_type instead of c_common_unsigned_type.
> (c_common_nodes_and_builtins): Use
> get_unsigned_type instead of c_common_unsigned_type.
> * gcc/c-common.h (c_common_unsigned_type): Remove.
> * gcc/c-decl.c (grokdeclarator): Use c_common_unsigned_type instead
> of get_unsigned_type.
> * gcc/c-format.c (check_format_types): Likewise.
> * gcc/c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
> * gcc/c-typeck.c (convert_for_assignment): Use get_unsigned_type
> instead of c_common_unsigned_type.
> * gcc/convert.c (convert_to_integer): Likewise.
> * gcc/expmed.c (make_tree): Use get_unsigned_type instead of
> lang_hooks.types.unsigned_type.
> * gcc/fold-const.c (fold_negate_expr): Likewise.
> (build_range_check): Likewise.
> (fold_unary): Likewise.
> (fold_binary): Likewise.
> (fold_ternary): Likewise.
> * gcc/langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
> (LANG_HOOKS_FOR_TYPES_INITIALIZER):
> Remove LANG_HOOKS_UNSIGNED_TYPE.
> * gcc/langhooks.h (lang_hooks_for_types): Remove unsigned_type
> * gcc/tree.c (unsigned_type_for): Use get_unsigned_type instead of
> lang_hooks.types.unsigned_type
>
> gcc/cp/ChangeLog
> * gcc/cp/cp-objcp-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
> * gcc/cp/decl.c (grokdeclarator): Replace c_common_unsigned_type with
> get_unsigned_type.
I see people have already pointed a regressy finger in the
direction of this patch, but anyway this change causes the
following regressions for cris-elf (only suspect in the range
124713:124716) and I'd be surprised to see all pass for any
target:
Running /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/dg.exp ...
FAIL: gcc.dg/Wno-pointer-sign.c (test for excess errors)
FAIL: gcc.dg/Wpointer-sign-Wall-no.c (test for excess errors)
FAIL: gcc.dg/Wpointer-sign-Wall.c (test for warnings, line 8)
FAIL: gcc.dg/Wpointer-sign-Wall.c (test for excess errors)
FAIL: gcc.dg/Wpointer-sign-pedantic-no.c (test for excess errors)
FAIL: gcc.dg/Wpointer-sign-pedantic.c (test for warnings, line 8)
FAIL: gcc.dg/Wpointer-sign-pedantic.c (test for excess errors)
FAIL: gcc.dg/Wpointer-sign.c (test for excess errors)
...
XPASS: gcc.dg/c90-const-expr-2.c bogus null pointer constant (test for bogus messages, line 37)
XPASS: gcc.dg/c90-const-expr-2.c bogus null pointer constant (test for bogus messages, line 38)
XPASS: gcc.dg/c90-const-expr-2.c bogus null pointer constant (test for bogus messages, line 40)
XPASS: gcc.dg/c90-const-expr-2.c bogus null pointer constant (test for bogus messages, line 42)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 31)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 32)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 34)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 36)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 43)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 44)
XPASS: gcc.dg/c90-const-expr-3.c bogus null pointer constant (test for bogus messages, line 45)
FAIL: gcc.dg/c90-const-expr-5.c (test for errors, line 18)
FAIL: gcc.dg/c90-const-expr-5.c (test for errors, line 19)
FAIL: gcc.dg/c90-const-expr-5.c (test for excess errors)
XPASS: gcc.dg/c99-const-expr-2.c bogus null pointer constant (test for bogus messages, line 37)
XPASS: gcc.dg/c99-const-expr-2.c bogus null pointer constant (test for bogus messages, line 38)
XPASS: gcc.dg/c99-const-expr-2.c bogus null pointer constant (test for bogus messages, line 40)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 30)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 31)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 33)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 35)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 42)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 43)
XPASS: gcc.dg/c99-const-expr-3.c bogus null pointer constant (test for bogus messages, line 44)
FAIL: gcc.dg/c99-const-expr-5.c (test for errors, line 18)
FAIL: gcc.dg/c99-const-expr-5.c (test for errors, line 19)
FAIL: gcc.dg/c99-const-expr-5.c (test for excess errors)
FAIL: gcc.dg/conv-2.c (test for warnings, line 15)
FAIL: gcc.dg/conv-2.c (test for warnings, line 16)
FAIL: gcc.dg/conv-2.c (test for warnings, line 17)
FAIL: gcc.dg/conv-2.c (test for warnings, line 18)
FAIL: gcc.dg/conv-2.c (test for excess errors)
...
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 55)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 57)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 59)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 61)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 63)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 65)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 67)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 69)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 71)
FAIL: gcc.dg/transparent-union-1.c (test for warnings, line 73)
...
Running /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/format/format.exp ...
FAIL: gcc.dg/format/bitfld-1.c (test for excess errors)
FAIL: gcc.dg/format/bitfld-1.c -DWIDE (test for excess errors)
FAIL: gcc.dg/format/c99-scanf-1.c (test for excess errors)
FAIL: gcc.dg/format/c99-scanf-1.c -DWIDE (test for excess errors)
With gcc.log saying for example:
FAIL: gcc.dg/Wno-pointer-sign.c (test for excess errors)
Excess errors:
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/Wno-pointer-sign.c:15: warning: assignment from incompatible pointer type
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/Wno-pointer-sign.c:16: warning: assignment from incompatible pointer type
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/Wno-pointer-sign.c:17: warning: passing argument 1 of 'f1' from incompatible pointer type
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/Wno-pointer-sign.c:18: warning: passing argument 1 of 'f2' from incompatible pointer type
...
FAIL: gcc.dg/Wpointer-sign-Wall-no.c (test for excess errors)
Excess errors:
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/Wpointer-sign-Wall-no.c:8: warning: passing argument 1 of 'foo' from incompatible pointer type
...
FAIL: gcc.dg/c90-const-expr-5.c (test for errors, line 18)
FAIL: gcc.dg/c90-const-expr-5.c (test for errors, line 19)
PASS: gcc.dg/c90-const-expr-5.c (test for errors, line 25)
PASS: gcc.dg/c90-const-expr-5.c (test for errors, line 35)
PASS: gcc.dg/c90-const-expr-5.c (test for errors, line 36)
PASS: gcc.dg/c90-const-expr-5.c (test for errors, line 37)
PASS: gcc.dg/c90-const-expr-5.c (test for errors, line 38)
FAIL: gcc.dg/c90-const-expr-5.c (test for excess errors)
Excess errors:
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/c90-const-expr-5.c:18: error: pointer targets in assignment differ in signedness
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/c90-const-expr-5.c:19: error: pointer targets in assignment differ in signedness
brgds, H-P