diff options
author | Gavin Romig-Koch <gavin@cygnus.com> | 1999-07-02 10:30:01 +0000 |
---|---|---|
committer | Gavin Romig-Koch <gavin@gcc.gnu.org> | 1999-07-02 10:30:01 +0000 |
commit | 835f9b4dad11d84e385ea8fe8bba1b0e403f23f5 (patch) | |
tree | 5114691738cec02b4b8107a5fd681336bc2439d6 /gcc/c-decl.c | |
parent | e75a9d77196ec059245f3baaff6cf249102ea5e5 (diff) | |
download | gcc-835f9b4dad11d84e385ea8fe8bba1b0e403f23f5.zip gcc-835f9b4dad11d84e385ea8fe8bba1b0e403f23f5.tar.gz gcc-835f9b4dad11d84e385ea8fe8bba1b0e403f23f5.tar.bz2 |
For gcc:
* c-decl.c (widest_integer_literal_type_node,
widest_unsigned_literal_type) : New.
(init_decl_processing): Handle/use the two new types.
* c-common.c (type_for_size,type_for_mode) : Same.
* c-lex.c (yylex) : Same.
* c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
Same.
* c-tree.h (widest_integer_literal_type_node,
widest_unsigned_literal_type) : New.
For gcc/cp:
* cp-tree.h (widest_integer_literal_type_node,
widest_unsigned_literal_type) : New.
* decl.c (widest_integer_literal_type_node,
widest_unsigned_literal_type) : New.
(init_decl_processing): Handle/use the two new types.
* lex.c (real_yylex): Same.
* typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
Same.
From-SVN: r27923
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r-- | gcc/c-decl.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index a232217..97db33f 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -123,6 +123,14 @@ tree unsigned_type_node; tree long_unsigned_type_node; tree long_long_unsigned_type_node; +/* These are used for integer literals that are larger than + a long long. The largest integer literals we can handle + are the width of two HOST_WIDE_INTs. If two HOST_WIDE_INTs + are not larger than the target's long long, then these + will never be used. */ +tree widest_integer_literal_type_node; +tree widest_unsigned_literal_type_node; + tree boolean_type_node; tree boolean_false_node; tree boolean_true_node; @@ -3103,6 +3111,16 @@ init_decl_processing () pushdecl (build_decl (TYPE_DECL, get_identifier ("unsigned char"), unsigned_char_type_node)); + /* Create the widest literal types. */ + widest_integer_literal_type_node = make_signed_type (HOST_BITS_PER_WIDE_INT * 2); + pushdecl (build_decl (TYPE_DECL, NULL_TREE, + widest_integer_literal_type_node)); + + widest_unsigned_literal_type_node = make_unsigned_type (HOST_BITS_PER_WIDE_INT * 2); + pushdecl (build_decl (TYPE_DECL, NULL_TREE, + widest_unsigned_literal_type_node)); + + /* Now all the integer mode types. */ intQI_type_node = make_signed_type (GET_MODE_BITSIZE (QImode)); pushdecl (build_decl (TYPE_DECL, NULL_TREE, intQI_type_node)); |