Skip to content
Snippets Groups Projects
  • Kris Van Hees's avatar
    b6baa67d
    cpp-id-data.h (UC): Was U, conflicts with U... · b6baa67d
    Kris Van Hees authored
    libcpp/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    * include/cpp-id-data.h (UC): Was U, conflicts with U... literal.
    * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
    (struct cpp_options): Added uliterals.
    (cpp_interpret_string): Update prototype.
    (cpp_interpret_string_notranslate): Idem.
    * charset.c (init_iconv_desc): New width member in cset_converter.
    (cpp_init_iconv): Add support for char{16,32}_cset_desc.
    (convert_ucn): Idem.
    (emit_numeric_escape): Idem.
    (convert_hex): Idem.
    (convert_oct): Idem.
    (convert_escape): Idem.
    (converter_for_type): New function.
    (cpp_interpret_string): Use converter_for_type, support u and U prefix.
    (cpp_interpret_string_notranslate): Match changed prototype.
    (wide_str_to_charconst): Use converter_for_type.
    (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
    * directives.c (linemarker_dir): Macro U changed to UC.
    (parse_include): Idem.
    (register_pragma_1): Idem.
    (restore_registered_pragmas): Idem.
    (get__Pragma_string): Support CPP_STRING{16,32}.
    * expr.c (eval_token): Support CPP_CHAR{16,32}.
    * init.c (struct lang_flags): Added uliterals.
    (lang_defaults): Idem.
    * internal.h (struct cset_converter) <width>: New field.
    (struct cpp_reader) <char16_cset_desc>: Idem.
    (struct cpp_reader) <char32_cset_desc>: Idem.
    * lex.c (digraph_spellings): Macro U changed to UC.
    (OP, TK): Idem.
    (lex_string): Add support for u'...', U'...', u... and U....
    (_cpp_lex_direct): Idem.
    * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
    (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
    
    gcc/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
      
    * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
    (fname_as_string): Match updated cpp_interpret_string prototype.
    (fix_string_type): Support char16_t* and char32_t*.
    (c_common_nodes_and_builtins): Add char16_t and char32_t (and
    derivative) nodes.  Register as builtin if C++0x.
    (c_parse_error): Support CPP_CHAR{16,32}.
    * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
    (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
    CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
    CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
    CTI_CHAR32_ARRAY_TYPE>: New elements.
    (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
    char32_type_node, signed_char32_type_node, char16_array_type_node,
    char32_array_type_node): New defines.
    * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
    (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
    (lex_string): Support CPP_STRING{16,32}, match updated
    cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
    (lex_charconst): Support CPP_CHAR{16,32}.
    * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
    and CPP_STRING{16,32}.
    
    gcc/cp/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    * cvt.c (type_promotes_to): Support char16_t and char32_t.
    * decl.c (grokdeclarator): Disallow signed/unsigned/short/long on
    char16_t and char32_t.
    * lex.c (reswords): Add char16_t and char32_t (for c++0x).
    * mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor
    extended builtin type u8char32_t.
    * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support
    RID_CHAR{16,32}.
    (cp_lexer_print_token): Support CPP_STRING{16,32}.
    (cp_parser_is_string_literal): Idem.
    (cp_parser_string_literal): Idem.
    (cp_parser_primary_expression): Support CPP_CHAR{16,32} and
    CPP_STRING{16,32}.
    (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. 
    * tree.c (char_type_p): Support char16_t and char32_t as char types.
    * typeck.c (string_conv_p): Support char16_t and char32_t.
    
    gcc/testsuite/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    Tests for char16_t and char32_t support.
    * g++.dg/ext/utf-cvt.C: New
    * g++.dg/ext/utf-cxx0x.C: New
    * g++.dg/ext/utf-cxx98.C: New
    * g++.dg/ext/utf-dflt.C: New
    * g++.dg/ext/utf-gnuxx0x.C: New
    * g++.dg/ext/utf-gnuxx98.C: New
    * g++.dg/ext/utf-mangle.C: New
    * g++.dg/ext/utf-typedef-cxx0x.C: New
    * g++.dg/ext/utf-typedef-
    * g++.dg/ext/utf-typespec.C: New
    * g++.dg/ext/utf16-1.C: New
    * g++.dg/ext/utf16-2.C: New
    * g++.dg/ext/utf16-3.C: New
    * g++.dg/ext/utf16-4.C: New
    * g++.dg/ext/utf32-1.C: New
    * g++.dg/ext/utf32-2.C: New
    * g++.dg/ext/utf32-3.C: New
    * g++.dg/ext/utf32-4.C: New
    * gcc.dg/utf-cvt.c: New
    * gcc.dg/utf-dflt.c: New
    * gcc.dg/utf16-1.c: New
    * gcc.dg/utf16-2.c: New
    * gcc.dg/utf16-3.c: New
    * gcc.dg/utf16-4.c: New
    * gcc.dg/utf32-1.c: New
    * gcc.dg/utf32-2.c: New
    * gcc.dg/utf32-3.c: New
    * gcc.dg/utf32-4.c: New
    
    libiberty/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    * testsuite/demangle-expected: Added tests for char16_t and char32_t.
    
    From-SVN: r134438
    b6baa67d
    History
    cpp-id-data.h (UC): Was U, conflicts with U...
    Kris Van Hees authored
    libcpp/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    * include/cpp-id-data.h (UC): Was U, conflicts with U... literal.
    * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
    (struct cpp_options): Added uliterals.
    (cpp_interpret_string): Update prototype.
    (cpp_interpret_string_notranslate): Idem.
    * charset.c (init_iconv_desc): New width member in cset_converter.
    (cpp_init_iconv): Add support for char{16,32}_cset_desc.
    (convert_ucn): Idem.
    (emit_numeric_escape): Idem.
    (convert_hex): Idem.
    (convert_oct): Idem.
    (convert_escape): Idem.
    (converter_for_type): New function.
    (cpp_interpret_string): Use converter_for_type, support u and U prefix.
    (cpp_interpret_string_notranslate): Match changed prototype.
    (wide_str_to_charconst): Use converter_for_type.
    (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
    * directives.c (linemarker_dir): Macro U changed to UC.
    (parse_include): Idem.
    (register_pragma_1): Idem.
    (restore_registered_pragmas): Idem.
    (get__Pragma_string): Support CPP_STRING{16,32}.
    * expr.c (eval_token): Support CPP_CHAR{16,32}.
    * init.c (struct lang_flags): Added uliterals.
    (lang_defaults): Idem.
    * internal.h (struct cset_converter) <width>: New field.
    (struct cpp_reader) <char16_cset_desc>: Idem.
    (struct cpp_reader) <char32_cset_desc>: Idem.
    * lex.c (digraph_spellings): Macro U changed to UC.
    (OP, TK): Idem.
    (lex_string): Add support for u'...', U'...', u... and U....
    (_cpp_lex_direct): Idem.
    * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
    (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
    
    gcc/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
      
    * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
    (fname_as_string): Match updated cpp_interpret_string prototype.
    (fix_string_type): Support char16_t* and char32_t*.
    (c_common_nodes_and_builtins): Add char16_t and char32_t (and
    derivative) nodes.  Register as builtin if C++0x.
    (c_parse_error): Support CPP_CHAR{16,32}.
    * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
    (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
    CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
    CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
    CTI_CHAR32_ARRAY_TYPE>: New elements.
    (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
    char32_type_node, signed_char32_type_node, char16_array_type_node,
    char32_array_type_node): New defines.
    * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
    (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
    (lex_string): Support CPP_STRING{16,32}, match updated
    cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
    (lex_charconst): Support CPP_CHAR{16,32}.
    * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
    and CPP_STRING{16,32}.
    
    gcc/cp/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    * cvt.c (type_promotes_to): Support char16_t and char32_t.
    * decl.c (grokdeclarator): Disallow signed/unsigned/short/long on
    char16_t and char32_t.
    * lex.c (reswords): Add char16_t and char32_t (for c++0x).
    * mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor
    extended builtin type u8char32_t.
    * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support
    RID_CHAR{16,32}.
    (cp_lexer_print_token): Support CPP_STRING{16,32}.
    (cp_parser_is_string_literal): Idem.
    (cp_parser_string_literal): Idem.
    (cp_parser_primary_expression): Support CPP_CHAR{16,32} and
    CPP_STRING{16,32}.
    (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. 
    * tree.c (char_type_p): Support char16_t and char32_t as char types.
    * typeck.c (string_conv_p): Support char16_t and char32_t.
    
    gcc/testsuite/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    Tests for char16_t and char32_t support.
    * g++.dg/ext/utf-cvt.C: New
    * g++.dg/ext/utf-cxx0x.C: New
    * g++.dg/ext/utf-cxx98.C: New
    * g++.dg/ext/utf-dflt.C: New
    * g++.dg/ext/utf-gnuxx0x.C: New
    * g++.dg/ext/utf-gnuxx98.C: New
    * g++.dg/ext/utf-mangle.C: New
    * g++.dg/ext/utf-typedef-cxx0x.C: New
    * g++.dg/ext/utf-typedef-
    * g++.dg/ext/utf-typespec.C: New
    * g++.dg/ext/utf16-1.C: New
    * g++.dg/ext/utf16-2.C: New
    * g++.dg/ext/utf16-3.C: New
    * g++.dg/ext/utf16-4.C: New
    * g++.dg/ext/utf32-1.C: New
    * g++.dg/ext/utf32-2.C: New
    * g++.dg/ext/utf32-3.C: New
    * g++.dg/ext/utf32-4.C: New
    * gcc.dg/utf-cvt.c: New
    * gcc.dg/utf-dflt.c: New
    * gcc.dg/utf16-1.c: New
    * gcc.dg/utf16-2.c: New
    * gcc.dg/utf16-3.c: New
    * gcc.dg/utf16-4.c: New
    * gcc.dg/utf32-1.c: New
    * gcc.dg/utf32-2.c: New
    * gcc.dg/utf32-3.c: New
    * gcc.dg/utf32-4.c: New
    
    libiberty/ChangeLog:
    2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
    
    * testsuite/demangle-expected: Added tests for char16_t and char32_t.
    
    From-SVN: r134438