This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]