summaryrefslogtreecommitdiff
path: root/gcc/tradcif.y
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-02 18:56:37 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-02 18:56:37 +0000
commit537c4bc627b8f5319a8cf4e59ee53cf88428787a (patch)
tree955327bc9f9ac1f86814b649a8e7be4427abe84a /gcc/tradcif.y
parent0f6b559cc1377adefe62b8ee02afea3b58120c80 (diff)
downloadgcc-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.y3
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