aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2002-05-21 21:55:37 +0000
committerZack Weinberg <zack@gcc.gnu.org>2002-05-21 21:55:37 +0000
commit2a1dc0d87ed40633451c634b567a37f15e93abb5 (patch)
treea9277c30531397fe1a8be45a591e60dad0e34257
parentd476dcad7f5d7b4c0a03d5a053e713c6b1b3a528 (diff)
downloadgcc-2a1dc0d87ed40633451c634b567a37f15e93abb5.zip
gcc-2a1dc0d87ed40633451c634b567a37f15e93abb5.tar.gz
gcc-2a1dc0d87ed40633451c634b567a37f15e93abb5.tar.bz2
c-common.c (c_common_init): Set options->unsigned_char from flag_signed_char.
* c-common.c (c_common_init): Set options->unsigned_char from flag_signed_char. (cb_register_builtins): Define __STRICT_ANSI__ and __CHAR_UNSIGNED__ here... * cppinit.c (init_builtins): Not here. (cpp_create_reader): unsigned_char option defaults to 0, not !DEFAULT_SIGNED_CHAR. (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char and -funsigned-char. * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__. * cpphash.c (_cpp_init_hashtable): Don't set it. * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting directly. Clarify comment. From-SVN: r53703
-rw-r--r--gcc/ChangeLog36
-rw-r--r--gcc/c-common.c16
-rw-r--r--gcc/cpphash.c1
-rw-r--r--gcc/cpphash.h1
-rw-r--r--gcc/cppinit.c25
-rw-r--r--gcc/cppmacro.c9
6 files changed, 44 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e0b55dd..63536dd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,22 @@
+2002-05-21 Zack Weinberg <zack@codesourcery.com>
+
+ * c-common.c (c_common_init): Set options->unsigned_char from
+ flag_signed_char.
+ (cb_register_builtins): Define __STRICT_ANSI__ and
+ __CHAR_UNSIGNED__ here...
+ * cppinit.c (init_builtins): Not here.
+ (cpp_create_reader): unsigned_char option defaults to 0, not
+ !DEFAULT_SIGNED_CHAR.
+ (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
+ and -funsigned-char.
+
+ * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
+ * cpphash.c (_cpp_init_hashtable): Don't set it.
+ * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
+ directly. Clarify comment.
+
2002-05-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
* bb-reorder.c (make_reorder_chain_1): Modified.
* cfganal.c (can_fallthru, flow_call_edges_add,
flow_preorder_transversal_compute): Modified.
@@ -80,8 +98,8 @@ Tue May 21 10:51:54 CEST 2002 Jan Hubicka <jh@suse.cz>
2002-05-20 Dale Johannesen <dalej@apple.com>
- * combine.c (cant_combine_insn_p): Back out my
- previous patch.
+ * combine.c (cant_combine_insn_p): Back out my
+ previous patch.
2002-05-20 Kazu Hirata <kazu@cs.umass.edu>
@@ -134,14 +152,14 @@ Tue May 21 10:51:54 CEST 2002 Jan Hubicka <jh@suse.cz>
2002-05-19 Aldy Hernandez <aldyh@redhat.com>
- * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
- an altivec register if TARGET_ALTIVEC.
+ * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
+ an altivec register if TARGET_ALTIVEC.
- * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
- to ALTIVEC_VECTOR_MODE.
- (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
- (rs6000_va_arg): Vectors may go in registers if they are not
- altivec vectors.
+ * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
+ to ALTIVEC_VECTOR_MODE.
+ (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
+ (rs6000_va_arg): Vectors may go in registers if they are not
+ altivec vectors.
2002-05-19 Kazu Hirata <kazu@cs.umass.edu>
diff --git a/gcc/c-common.c b/gcc/c-common.c
index b9658da..89f9870 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -4372,6 +4372,12 @@ cb_register_builtins (pfile)
if (flag_no_inline)
cpp_define (pfile, "__NO_INLINE__");
+ if (flag_iso)
+ cpp_define (pfile, "__STRICT_ANSI__");
+
+ if (!flag_signed_char)
+ cpp_define (pfile, "__CHAR_UNSIGNED__");
+
/* A straightforward target hook doesn't work, because of problems
linking that hook's body when part of non-C front ends. */
#define preprocessing_asm_p() (cpp_get_options (pfile)->lang == CLK_ASM)
@@ -4461,15 +4467,7 @@ c_common_init (filename)
options->int_precision = TYPE_PRECISION (integer_type_node);
options->wchar_precision = TYPE_PRECISION (wchar_type_node);
options->unsigned_wchar = TREE_UNSIGNED (wchar_type_node);
- /* This can be uncommented when 1) This all happens before
- cpp_post_options() (needed for __CHAR_UNSIGNED__ builtin), which
- in turn requires wchat_type_node to be set up properly by then,
- and 2) tradcpp is integrated, so that the preprocessors don't
- need to handle the command-line options and the specs in gcc.c
- can be updated.
-
- options->unsigned_char = !flag_signed_char; */
-
+ options->unsigned_char = !flag_signed_char;
options->warn_multichar = warn_multichar;
options->stdc_0_in_system_headers = STDC_0_IN_SYSTEM_HEADERS;
diff --git a/gcc/cpphash.c b/gcc/cpphash.c
index 69e1a23..a90ec9b 100644
--- a/gcc/cpphash.c
+++ b/gcc/cpphash.c
@@ -72,7 +72,6 @@ _cpp_init_hashtable (pfile, table)
s->n_defined = cpp_lookup (pfile, DSC("defined"));
s->n_true = cpp_lookup (pfile, DSC("true"));
s->n_false = cpp_lookup (pfile, DSC("false"));
- s->n__STRICT_ANSI__ = cpp_lookup (pfile, DSC("__STRICT_ANSI__"));
s->n__VA_ARGS__ = cpp_lookup (pfile, DSC("__VA_ARGS__"));
s->n__VA_ARGS__->flags |= NODE_DIAGNOSTIC;
}
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index dcbb4fc..7be439f 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -188,7 +188,6 @@ struct spec_nodes
cpp_hashnode *n_defined; /* defined operator */
cpp_hashnode *n_true; /* C++ keyword true */
cpp_hashnode *n_false; /* C++ keyword false */
- cpp_hashnode *n__STRICT_ANSI__; /* STDC_0_IN_SYSTEM_HEADERS */
cpp_hashnode *n__VA_ARGS__; /* C99 vararg macros */
};
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index 4f2cc8e..f8e9cd5 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -500,7 +500,7 @@ cpp_create_reader (lang)
CPP_OPTION (pfile, char_precision) = CHAR_BIT;
CPP_OPTION (pfile, wchar_precision) = CHAR_BIT * sizeof (int);
CPP_OPTION (pfile, int_precision) = CHAR_BIT * sizeof (int);
- CPP_OPTION (pfile, unsigned_char) = !DEFAULT_SIGNED_CHAR;
+ CPP_OPTION (pfile, unsigned_char) = 0;
CPP_OPTION (pfile, unsigned_wchar) = 1;
/* It's simplest to just create this struct whether or not it will
@@ -694,25 +694,16 @@ init_builtins (pfile)
if (CPP_OPTION (pfile, cplusplus))
_cpp_define_builtin (pfile, "__cplusplus 1");
-
- if (CPP_OPTION (pfile, objc))
+ else if (CPP_OPTION (pfile, objc))
_cpp_define_builtin (pfile, "__OBJC__ 1");
+ else if (CPP_OPTION (pfile, lang) == CLK_ASM)
+ _cpp_define_builtin (pfile, "__ASSEMBLER__ 1");
if (CPP_OPTION (pfile, lang) == CLK_STDC94)
_cpp_define_builtin (pfile, "__STDC_VERSION__ 199409L");
else if (CPP_OPTION (pfile, c99))
_cpp_define_builtin (pfile, "__STDC_VERSION__ 199901L");
- if (CPP_OPTION (pfile, unsigned_char))
- _cpp_define_builtin (pfile, "__CHAR_UNSIGNED__ 1");
-
- if (CPP_OPTION (pfile, lang) == CLK_STDC89
- || CPP_OPTION (pfile, lang) == CLK_STDC94
- || CPP_OPTION (pfile, lang) == CLK_STDC99)
- _cpp_define_builtin (pfile, "__STRICT_ANSI__ 1");
- else if (CPP_OPTION (pfile, lang) == CLK_ASM)
- _cpp_define_builtin (pfile, "__ASSEMBLER__ 1");
-
if (pfile->cb.register_builtins)
(*pfile->cb.register_builtins) (pfile);
}
@@ -1158,9 +1149,7 @@ new_pending_directive (pend, text, handler)
DEF_OPT("fno-show-column", 0, OPT_fno_show_column) \
DEF_OPT("fpreprocessed", 0, OPT_fpreprocessed) \
DEF_OPT("fshow-column", 0, OPT_fshow_column) \
- DEF_OPT("fsigned-char", 0, OPT_fsigned_char) \
DEF_OPT("ftabstop=", no_num, OPT_ftabstop) \
- DEF_OPT("funsigned-char", 0, OPT_funsigned_char) \
DEF_OPT("h", 0, OPT_h) \
DEF_OPT("idirafter", no_dir, OPT_idirafter) \
DEF_OPT("imacros", no_fil, OPT_imacros) \
@@ -1365,12 +1354,6 @@ cpp_handle_option (pfile, argc, argv, ignore)
case OPT_fno_show_column:
CPP_OPTION (pfile, show_column) = 0;
break;
- case OPT_fsigned_char:
- CPP_OPTION (pfile, unsigned_char) = 0;
- break;
- case OPT_funsigned_char:
- CPP_OPTION (pfile, unsigned_char) = 1;
- break;
case OPT_ftabstop:
/* Silently ignore empty string, non-longs and silly values. */
if (arg[0] != '\0')
diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c
index c7a08f2..797a304 100644
--- a/gcc/cppmacro.c
+++ b/gcc/cppmacro.c
@@ -174,14 +174,17 @@ builtin_macro (pfile, node)
/* __STDC__ has the value 1 under normal circumstances.
However, if (a) we are in a system header, (b) the option
- stdc_0_in_system_headers is true, and (c) __STRICT_ANSI__ is
- not defined, then it has the value 0. */
+ stdc_0_in_system_headers is true (set by target config), and
+ (c) we are not in strictly conforming mode, then it has the
+ value 0. */
case BT_STDC:
{
int stdc;
+ enum c_lang lang = CPP_OPTION (pfile, lang);
if (CPP_IN_SYSTEM_HEADER (pfile)
&& CPP_OPTION (pfile, stdc_0_in_system_headers)
- && pfile->spec_nodes.n__STRICT_ANSI__->type == NT_VOID)
+ && !(lang == CLK_STDC89 || lang == CLK_STDC94
+ || lang == CLK_STDC99)) /* || lang == CLK_CXX98 ? */
stdc = 0;
else
stdc = 1;