diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-02-02 18:56:37 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-02-02 18:56:37 +0000 |
commit | 537c4bc627b8f5319a8cf4e59ee53cf88428787a (patch) | |
tree | 955327bc9f9ac1f86814b649a8e7be4427abe84a /gcc/tradcif.y | |
parent | 0f6b559cc1377adefe62b8ee02afea3b58120c80 (diff) | |
download | gcc-537c4bc627b8f5319a8cf4e59ee53cf88428787a.tar.gz |
* cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
* cpphash.c (_cpp_init_hashtable): Similarly.
* cppinit.c (cpp_create_reader): Default the signed_char flag.
(init_builtins): Define __CHAR_UNSIGNED__ appropriately.
(COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
(cpp_handle_option): Handle the new options.
* cpplex.c (cpp_interpret_charconst): Use new flag.
* cpplib.h (struct cpp_options): New member signed_char.
* gcc.c (cpp_unique_options): Remove %c spec and documentation.
(cpp_options): Handle -fsigned-char and -funsigned-char.
(static_specs): Remove signed_char_spec.
(do_spec1): Don't handle %c.
* system.h: Poison SIGNED_CHAR_SPEC.
* tradcif.y (yylex): Use flag_signed_char.
* tradcpp.h (flag_signed_char): New.
* tradcpp.c (flag_signed_char): New.
(main): Handle new command-line options.
(initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
config:
* alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
* avr/avr.h: Remove old comments.
* i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
(CC1_SPEC): Pass -fsigned-char if -mic*.
(SIGNED_CHAR_SPEC): Remove.
doc:
* tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
testsuite:
* gcc.dg/cpp/uchar-1.c, uchar-2.c, uchar-3.c: New tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49444 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tradcif.y')
-rw-r--r-- | gcc/tradcif.y | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/tradcif.y b/gcc/tradcif.y index 4598d615b56..953e2d6706f 100644 --- a/gcc/tradcif.y +++ b/gcc/tradcif.y @@ -344,8 +344,7 @@ yylex () /* Sign-extend the constant if chars are signed on target machine. */ { - if (lookup ((const unsigned char *)"__CHAR_UNSIGNED__", - sizeof ("__CHAR_UNSIGNED__")-1, -1) + if (flag_signed_char == 0 || ((c >> (CHAR_TYPE_SIZE - 1)) & 1) == 0) yylval.integer.value = c & ((1 << CHAR_TYPE_SIZE) - 1); else |