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