diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2002-02-02 18:56:37 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2002-02-02 18:56:37 +0000 |
commit | 0fef3fd0eada944c2677ba0680393a12979f970f (patch) | |
tree | 955327bc9f9ac1f86814b649a8e7be4427abe84a /gcc/gcc.c | |
parent | 1acce4c771ff585069a1551fe1a6d0bf70fdda52 (diff) | |
download | gcc-0fef3fd0eada944c2677ba0680393a12979f970f.tar.gz |
cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
* 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.
From-SVN: r49444
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r-- | gcc/gcc.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c index 8968af6d0cf..41c62a9e4fe 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -445,7 +445,6 @@ or with constant text in a single argument. if multilib_dir is not set or is ".", output "". %S process STARTFILE_SPEC as a spec. A capital S is actually used here. %E process ENDFILE_SPEC as a spec. A capital E is actually used here. - %c process SIGNED_CHAR_SPEC as a spec. %C process CPP_SPEC as a spec. %1 process CC1_SPEC as a spec. %2 process CC1PLUS_SPEC as a spec. @@ -511,7 +510,7 @@ CC also knows implicitly that arguments starting in `-l' are to be treated as compiler output files, and passed to the linker in their proper position among the other output files. */ -/* Define the macros used for specs %a, %l, %L, %S, %c, %C, %1. */ +/* Define the macros used for specs %a, %l, %L, %S, %C, %1. */ /* config.h can define ASM_SPEC to provide extra args to the assembler or extra switch-translations. */ @@ -582,17 +581,6 @@ proper position among the other output files. */ #define ENDFILE_SPEC "" #endif -/* This spec is used for telling cpp whether char is signed or not. */ -#ifndef SIGNED_CHAR_SPEC -/* Use #if rather than ?: - because MIPS C compiler rejects like ?: in initializers. */ -#if DEFAULT_SIGNED_CHAR -#define SIGNED_CHAR_SPEC "%{funsigned-char:-D__CHAR_UNSIGNED__}" -#else -#define SIGNED_CHAR_SPEC "%{!fsigned-char:-D__CHAR_UNSIGNED__}" -#endif -#endif - #ifndef LINKER_NAME #define LINKER_NAME "collect2" #endif @@ -651,7 +639,6 @@ static const char *cpp_spec = CPP_SPEC; static const char *cpp_predefines = CPP_PREDEFINES; static const char *cc1_spec = CC1_SPEC; static const char *cc1plus_spec = CC1PLUS_SPEC; -static const char *signed_char_spec = SIGNED_CHAR_SPEC; static const char *asm_spec = ASM_SPEC; static const char *asm_final_spec = ASM_FINAL_SPEC; static const char *link_spec = LINK_SPEC; @@ -681,7 +668,7 @@ static const char *cpp_unique_options = %{M} %{MM} %W{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{M|MD|MM|MMD:%{o*:-MQ %*}}\ %{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2 -D__GNUC_PATCHLEVEL__=%v3}\ %{!undef:%{!ansi:%{!std=*:%p}%{std=gnu*:%p}} %P} %{trigraphs}\ - %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\ + %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\ %{fno-inline|O0|!O*:-D__NO_INLINE__} %{ffast-math:-D__FAST_MATH__}\ %{fshort-wchar:-U__WCHAR_TYPE__ -D__WCHAR_TYPE__=short\\ unsigned\\ int}\ %{ffreestanding:-D__STDC_HOSTED__=0} %{fno-hosted:-D__STDC_HOSTED__=0}\ @@ -694,6 +681,7 @@ static const char *cpp_unique_options = static const char *cpp_options = "%(cpp_unique_options) %{std*} %{d*} %{W*} %{w} %{pedantic*}\ %{fshow-column} %{fno-show-column}\ + %{fsigned-char&funsigned-char}\ %{fleading-underscore} %{fno-leading-underscore}\ %{fno-operator-names} %{ftabstop=*}"; @@ -1382,7 +1370,6 @@ static struct spec_list static_specs[] = INIT_STATIC_SPEC ("libgcc", &libgcc_spec), INIT_STATIC_SPEC ("startfile", &startfile_spec), INIT_STATIC_SPEC ("switches_need_spaces", &switches_need_spaces), - INIT_STATIC_SPEC ("signed_char", &signed_char_spec), INIT_STATIC_SPEC ("predefines", &cpp_predefines), INIT_STATIC_SPEC ("cross_compile", &cross_compile), INIT_STATIC_SPEC ("version", &compiler_version), @@ -1785,7 +1772,7 @@ load_specs (filename) A suffix which starts with `*' is a definition for one of the machine-specific sub-specs. The "suffix" should be - *asm, *cc1, *cpp, *link, *startfile, *signed_char, etc. + *asm, *cc1, *cpp, *link, *startfile, etc. The corresponding spec is stored in asm_spec, etc., rather than in the `compilers' vector. @@ -4783,12 +4770,6 @@ do_spec_1 (spec, inswitch, soft_matched_part) return value; break; - case 'c': - value = do_spec_1 (signed_char_spec, 0, NULL); - if (value != 0) - return value; - break; - case 'C': { const char *const spec |