Dave Korn wrote:
> Joseph S. Myers wrote:
> 
>> I'm hoping the maintainers of OS support in GCC, or other people set up
>> to test on each OS, will put the types in an appropriate tm.h header and
>> test that the c99-stdint-*.c tests pass.  Adding the information myself
>> without testing is very much a last resort.
> 
> I'll take care of this during the week for Cygwin.  (It'll take me at least
>  a few days).

  First attempt (attached) didn't go so well.  When building libgcc2, I get an
ICE in the preprocessor, here:

Program received signal SIGSEGV, Segmentation fault.
0x004e8fdc in c_common_nodes_and_builtins ()
    at /gnu/gcc/gcc/gcc/c-common.c:4909
4909      char16_type_node = TREE_TYPE (identifier_global_value
(char16_type_node));
(gdb) bt
#0  0x004e8fdc in c_common_nodes_and_builtins ()
    at /gnu/gcc/gcc/gcc/c-common.c:4909
#1  0x0043fad8 in c_init_decl_processing () at /gnu/gcc/gcc/gcc/c-decl.c:2780
#2  0x0052d4f9 in c_objc_common_init () at /gnu/gcc/gcc/gcc/c-objc-common.c:70
#3  0x00b521d4 in lang_dependent_init (
    name=0x687cc9c "/gnu/gcc/gcc/libgcc/../gcc/libgcc2.c")
    at /gnu/gcc/gcc/gcc/toplev.c:2116
#4  0x00b523ca in do_compile () at /gnu/gcc/gcc/gcc/toplev.c:2237
#5  0x00b52438 in toplev_main (argc=68, argv=0x7279b98)
    at /gnu/gcc/gcc/gcc/toplev.c:2270
#6  0x005a7cc0 in main (argc=68, argv=0x7279b98) at /gnu/gcc/gcc/gcc/main.c:35
(gdb) print char16_type_node
No symbol "char16_type_node" in current context.
(gdb) list
4904      wchar_array_type_node
4905        = build_array_type (wchar_type_node, array_domain_type);
4906
4907      /* Define 'char16_t'.  */
4908      char16_type_node = get_identifier (CHAR16_TYPE);
4909      char16_type_node = TREE_TYPE (identifier_global_value
(char16_type_node));
4910      char16_type_size = TYPE_PRECISION (char16_type_node);
4911      if (c_dialect_cxx ())
4912        {
4913          char16_type_node = make_unsigned_type (char16_type_size);
(gdb) print CHAR16_TYPE
No symbol "CHAR16_TYPE" in current context.


  As far as I can tell, CHAR16_TYPE is:

(gdb) x/s 0x1fdb0f6
0x1fdb0f6 <__FUNCTION__.59453+167>:      "unsigned short"
(gdb)

  Is this perhaps related to the way all the short, long and longlong types in
cygwin-stdint.h omit "int"?

    cheers,
      DaveK

Reply via email to