aboutsummaryrefslogtreecommitdiff
path: root/libiberty
AgeCommit message (Collapse)AuthorFilesLines
2020-05-30Daily bump.GCC Administrator1-0/+5
2020-05-29Avoid nested save_CFLAGS and save_LDFLAGSH.J. Lu1-6/+6
Avoid nested save_CFLAGS and save_LDFLAGS by replacing save_CFLAGS and save_LDFLAGS with cet_save_CFLAGS and cet_save_LDFLAGS in cet.m4. config/ PR bootstrap/95413 * cet.m4: Replace save_CFLAGS and save_LDFLAGS with cet_save_CFLAGS and cet_save_LDFLAGS. gcc/ PR bootstrap/95413 * configure: Regenerated. libatomic/ PR bootstrap/95413 * configure: Regenerated. libbacktrace/ PR bootstrap/95413 * configure: Regenerated. libcc1/ PR bootstrap/95413 * configure: Regenerated. libcpp/ PR bootstrap/95413 * configure: Regenerated. libdecnumber/ PR bootstrap/95413 * configure: Regenerated. libgcc/ PR bootstrap/95413 * configure: Regenerated. libgfortran/ PR bootstrap/95413 * configure: Regenerated. libgomp/ PR bootstrap/95413 * configure: Regenerated. libiberty/ PR bootstrap/95413 * configure: Regenerated. libitm/ PR bootstrap/95413 * configure: Regenerated. libobjc/ PR bootstrap/95413 * configure: Regenerated. libphobos/ PR bootstrap/95413 * configure: Regenerated. libquadmath/ PR bootstrap/95413 * configure: Regenerated. libsanitizer/ PR bootstrap/95413 * configure: Regenerated. libssp/ PR bootstrap/95413 * configure: Regenerated. libstdc++-v3/ PR bootstrap/95413 * configure: Regenerated. libvtv/ PR bootstrap/95413 * configure: Regenerated. lto-plugin/ PR bootstrap/95413 * configure: Regenerated. zlib/ PR bootstrap/95413 * configure: Regenerated.
2020-05-15libiberty: Handle @live attribute in D demangler.Iain Buclaw3-0/+17
Adds support for demangling D functions annotated with the new ownership/borrowing system attribute. libiberty/ChangeLog: * d-demangle.c (dlang_attributes): Add @live attribute. * testsuite/d-demangle-expected: Add new tests.
2020-05-14libiberty: Update D symbol demangling for latest ABI spec.Iain Buclaw3-261/+613
Some small improvements and clarifications have been done in the D ABI specification to remove all ambiguities found in the current grammar, this implementation now more closely resembles the spec, whilst maintaining compatibility with the old ABI. Three new rules have been added to the ABI. 1. Back references using 'Q', analogous to C++ substitutions, compresses repeated identifiers, types, and template symbol and value parameters. 2. Template aliases to externally mangled symbols are prefixed with 'X'. This includes any symbol that isn't extern(D), or has its name overriden with pragma(mangle). This fixes an ambiguity where it was not clear whether 'V' was an encoded calling convention, or the next template value parameter. 3. Alias parameters, templates, and tuple symbols no longer encode the symbol length of its subpart. Tuples are now terminated with 'Z'. This fixes another ambiguity where the first character of the mangled name can be a digit as well, so the demangler had to figure out where to split the two adjacent numbers by trying out each combination. libiberty/ChangeLog: * d-demangle.c (enum dlang_symbol_kinds): Remove enum. (struct dlang_info): New struct (dlang_decode_backref): New function. (dlang_backref): New function. (dlang_symbol_backref): New function. (dlang_type_backref): New function. (dlang_symbol_name_p): New function. (dlang_function_type_noreturn): New function. (dlang_function_type): Add 'info' parameter. Decode function type with dlang_function_type_noreturn. (dlang_function_args): Add 'info' parameter. (dlang_type): Add 'info' parameter. Handle back referenced types. (dlang_identifier): Replace 'kind' parameter with 'info'. Handle back referenced symbols. Split off decoding of plain identifiers to... (dlang_lname): ...here. (dlang_parse_mangle): Replace 'kind' parameter with 'info'. Decode function type and return with dlang_type. (dlang_parse_qualified): Replace 'kind' parameter with 'info', add 'suffix_modifier' parameter. Decode function type with dlang_function_type_noreturn. (dlang_parse_tuple): Add 'info' parameter. (dlang_template_symbol_param): New function. (dlang_template_args): Add 'info' parameter. Decode symbol parameter with dlang_template_symbol_param. Handle back referenced values, and externally mangled parameters. (dlang_parse_template): Add 'info' parameter. (dlang_demangle_init_info): New function. (dlang_demangle): Initialize and pass 'info' parameter. * testsuite/d-demangle-expected: Add new tests. Co-Authored-By: Rainer Schuetze <r.sagitario@gmx.de>
2020-05-12Enable CET in cross compiler if possibleH.J. Lu2-3/+14
Don't perform CET run-time check for host when cross compiling. Instead, enable CET in cross compiler if possible so that it will run on both CET and non-CET hosts. config/ PR bootstrap/94998 * cet.m4 (GCC_CET_HOST_FLAGS): Enable CET in cross compiler if possible. libiberty/ PR bootstrap/94998 * configure: Regenerated. lto-plugin/ PR bootstrap/94998 * configure: Regenerated.
2020-04-28Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk work firstH.J. Lu2-49/+82
GCC_CET_HOST_FLAGS uses -Wl,-z,ibt,-z,shstk to check if Linux/x86 host has Intel CET enabled by introducing an Intel CET violation on purpose. To avoid false positive, check whether -Wl,-z,ibt,-z,shstk works first. -fcf-protection=none is added to avoid false negative when -fcf-protection is enabled by default. config/ PR bootstrap/94739 * cet.m4 (GCC_CET_HOST_FLAGS): Add -fcf-protection=none to -Wl,-z,ibt,-z,shstk. Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk works first. libiberty/ PR bootstrap/94739 * configure: Regenerated. lto-plugin/ PR bootstrap/94739 * configure: Regenerated.
2020-04-27demangler: Handle <=> operator in the demangler [PR94797]Jakub Jelinek3-0/+10
The demangler didn't handle spaceship operator. 2020-04-27 Jakub Jelinek <jakub@redhat.com> PR demangler/94797 * cp-demangle.c (cplus_demangle_operators): Add ss <=> operator. * testsuite/demangle-expected: Add operator<=> test.
2020-04-25Enable Intel CET in liblto_plugin.so on Intel CET enabled hostH.J. Lu5-1/+165
Since ld is Intel CET enabled on Intel CET enabled host, dlopen fails on liblto_plugin.so if it isn't Intel CET enabled. Add GCC_CET_HOST_FLAGS to cet.m4, use it in libiberty and lto-plugin to always enable Intel CET in liblto_plugin.so on Intel CET enabled host. On Linux/x86 host, enable Intel CET by default if assembler and compiler support Intel CET so that the generated liblto_plugin.so can be used on both CET and non-CET machines. It is an error to disable Intel CET in liblto_plugin.so on Intel CET enabled host. config/ PR bootstrap/94739 * cet.m4 (GCC_CET_HOST_FLAGS): New. libiberty/ PR bootstrap/94739 * Makefile.in (COMPILE.c): Add @CET_HOST_FLAGS@. (configure_deps): Add $(srcdir)/../config/cet.m4 and $(srcdir)/../config/enable.m4. * aclocal.m4: Include ../config/cet.m4 and ../config/enable.m4. * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and AC_SUBST(CET_HOST_FLAGS). * configure: Regenerated. lto-plugin/ PR bootstrap/94739 * Makefile.am (AM_CFLAGS): Add $(CET_HOST_FLAGS). * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and AC_SUBST(CET_HOST_FLAGS). * Makefile.in: Regenerated. * aclocal.m4: Likewise. * configure: Likewise.
2020-03-05Keep .GCC.command.line sections of LTO objetcsRichard Biener2-0/+9
This patch is for .GCC.command.line sections in LTO objects to be copied into the final objects as in the following example: [egeyar@localhost lto]$ gcc -flto -O3 demo.c -c -g --record-gcc-command-line [egeyar@localhost lto]$ gcc -flto -O2 demo2.c -c -g --record-gcc-command-line -DFORTIFY=2 [egeyar@localhost lto]$ gcc demo.o demo2.o -o a.out [egeyar@localhost lto]$ readelf -p .GCC.command.line a.out String dump of section '.GCC.command.line': [ 0] 10.0.1 20200227 (experimental) : gcc -flto -O3 demo.c -c -g --record-gcc-command-line [ 56] 10.0.1 20200227 (experimental) : gcc -flto -O2 demo2.c -c -g --record-gcc-command-line -DFORTIFY=2 2020-03-05 Egeyar Bagcioglu <egeyar.bagcioglu@oracle.com> * simple-object.c (handle_lto_debug_sections): Name ".GCC.command.line" among debug sections to be copied over from lto objects.
2020-03-02Fix a libiberty testsuite failureNick Clifton2-1/+6
* testsuite/demangle-expected: Update expected demangling of enable_if pattern.
2020-03-02lto: Also copy .note.gnu.property sectionH.J. Lu2-0/+9
When generating the separate file with LTO debug sections, we should also copy .note.gnu.property section. PR lto/93966 * simple-object.c (handle_lto_debug_sections): Also copy .note.gnu.property section.
2020-02-12Use a non-empty test program to test ability to link.Sandra Loosemore2-2/+9
On bare-metal targets, I/O support is typically provided by a BSP and requires a linker script and/or hosting library to be specified on the linker command line. Linking an empty program with the default linker script may succeed, however, which confuses libstdc++ configuration when programs that probe for the presence of various I/O features fail with link errors. 2020-02-12 Sandra Loosemore <sandra@codesourcery.com> PR libstdc++/79193 PR libstdc++/88999 config/ * no-executables.m4: Use a non-empty program to test for linker support. libgcc/ * configure: Regenerated. libgfortran/ * configure: Regenerated. libiberty/ * configure: Regenerated. libitm/ * configure: Regenerated. libobjc/ * configure: Regenerated. libquadmath/ * configure: Regenerated. libssp/ * configure: Regenerated. libstdc++v-3/ * configure: Regenerated.
2020-02-05libiberty/hashtab: More const parametersAndrew Burgess2-2/+7
Makes some parameters const in libiberty's hashtab library. include/ChangeLog: * hashtab.h (htab_remove_elt): Make a parameter const. (htab_remove_elt_with_hash): Likewise. libiberty/ChangeLog: * hashtab.c (htab_remove_elt): Make a parameter const. (htab_remove_elt_with_hash): Likewise.
2020-01-23[libiberty] output empty args as a pair of quotesAlexandre Oliva2-0/+12
writeargv writes out empty arguments in a way that expandargv skips them instead of preserving them. Fixed by writing out a pair of quotes for them. for libiberty/ChangeLog * argv.c (writeargv): Output empty args as "".
2020-01-18[libiberty] Update demangler to handle co_await operator.Iain Sandoe2-0/+4
C++20 coroutines introduces a new operator with a mangling of 'aw'. This patch adds that to libiberty's demangler. libiberty/ChangeLog: 2020-01-18 Iain Sandoe <iain@sandoe.co.uk> * cp-demangle.c (cplus_demangle_operators): Add the co_await operator. * testsuite/demangle-expected: Test co_await operator mangling.
2020-01-01Update copyright years.Jakub Jelinek94-94/+98
From-SVN: r279813
2019-12-06Fix read buffer overflow in split_directoriesTim Ruehsen2-0/+8
* make-relative-prefix.c (split_directories): Return early on empty 'name' From-SVN: r279068
2019-11-16[PATCH] Fix slowness in demanglerJeff Law3-5/+30
* cp-demangle.c (d_print_init): Remove const from 4th param. (cplus_demangle_fill_name): Initialize d->d_counting. (cplus_demangle_fill_extended_operator): Likewise. (cplus_demangle_fill_ctor): Likewise. (cplus_demangle_fill_dtor): Likewise. (d_make_empty): Likewise. (d_count_templates_scopes): Remobe const from 3rd param, Return on dc->d_counting > 1, Increment dc->d_counting. * cp-demint.c (cplus_demangle_fill_component): Initialize d->d_counting. (cplus_demangle_fill_builtin_type): Likewise. (cplus_demangle_fill_operator): Likewise. * demangle.h (struct demangle_component): Add member d_counting. From-SVN: r278359
2019-11-16[PATCH] Refactor rust-demangle to be independent of C++ demangling.Eduard-Mihai Burtescu4-266/+427
* demangle.h (rust_demangle_callback): Add. * cplus-dem.c (cplus_demangle): Use rust_demangle directly. (rust_demangle): Remove. * rust-demangle.c (is_prefixed_hash): Rename to is_legacy_prefixed_hash. (parse_lower_hex_nibble): Rename to decode_lower_hex_nibble. (parse_legacy_escape): Rename to decode_legacy_escape. (rust_is_mangled): Remove. (struct rust_demangler): Add. (peek): Add. (next): Add. (struct rust_mangled_ident): Add. (parse_ident): Add. (rust_demangle_sym): Remove. (print_str): Add. (PRINT): Add. (print_ident): Add. (rust_demangle_callback): Add. (struct str_buf): Add. (str_buf_reserve): Add. (str_buf_append): Add. (str_buf_demangle_callback): Add. (rust_demangle): Add. * rust-demangle.h: Remove. From-SVN: r278358
2019-11-16* testsuite/demangle-expected: Fix test.Miguel Saldivar2-1/+5
From-SVN: r278357
2019-11-04PR c++/91979 - mangling nullptr expressionKamlesh Kumar3-0/+21
2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com> gcc/cp * cp/mangle.c (write_template_arg_literal): Handle nullptr mangling. gcc * common.opt (-fabi-version): Document =14. * doc/invoke.texi (C++ Dialect Options): Likewise. gcc/c-family * c-opts.c (c_common_post_options): Update latest_abi_version. libiberty * cp-demangle.c (d_expr_primary): Handle nullptr demangling. * testsuite/demangle-expected: Added test. From-SVN: r277801
2019-10-29cp-demangle.c (d_number): Avoid signed int overflow.Paul Pluzhnikov2-1/+5
2019-10-29 Paul Pluzhnikov <ppluzhnikov@google.com> * cp-demangle.c (d_number): Avoid signed int overflow. From-SVN: r277575
2019-10-28cp-demangle.c (d_print_mod): Add a space before printing `complex` and ↵Miguel Saldivar3-3/+9
`imaginary`, as opposed to after. * cp-demangle.c (d_print_mod): Add a space before printing `complex` and `imaginary`, as opposed to after. * testsuite/demangle-expected: Adjust test. From-SVN: r277535
2019-10-03rust-demangle.c (looks_like_rust): Remove.Eduard-Mihai Burtescu3-40/+34
* rust-demangle.c (looks_like_rust): Remove. (rust_is_mangled): Don't check escapes. (is_prefixed_hash): Allow 0-9a-f permutations. (rust_demangle_sym): Don't bail on unknown escapes. * testsuite/rust-demangle-expected: Update 'main::$99$' test. From-SVN: r276539
2019-09-03rust-demangle.c (unescape): Remove.Eduard-Mihai Burtescu3-147/+148
* rust-demangle.c (unescape): Remove. (parse_lower_hex_nibble): New function. (parse_legacy_escape): New function. (is_prefixed_hash): Use parse_lower_hex_nibble. (looks_like_rust): Use parse_legacy_escape. (rust_demangle_sym): Use parse_legacy_escape. * testsuite/rust-demangle-expected: Add 'llv$u6d$' test. From-SVN: r275353
2019-08-27Share a prevailing name for remove debug info symbols w/ LTO.Martin Liska2-22/+56
2019-08-27 Martin Liska <mliska@suse.cz> PR lto/91478 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): First find a WEAK HIDDEN symbol in symbol table that will be preserved. Later, use the symbol name for all removed symbols. From-SVN: r274955
2019-08-12Move is_valid_fd to filedescriptor.c file.Martin Liska4-17/+66
2019-08-12 Martin Liska <mliska@suse.cz> * Makefile.in: Add filedescriptor.c. * filedescriptor.c: New file. * lrealpath.c (is_valid_fd): Remove. From-SVN: r274273
2019-08-08Fix file descriptor existence of MinGW.Martin Liska2-0/+21
2019-08-08 Martin Liska <mliska@suse.cz> PR bootstrap/91352 * gcc.c (driver::detect_jobserver): Use is_valid_fd. * lto-wrapper.c (jobserver_active_p): Likewise. 2019-08-08 Martin Liska <mliska@suse.cz> PR bootstrap/91352 * libiberty.h (is_valid_fd): New function. 2019-08-08 Martin Liska <mliska@suse.cz> PR bootstrap/91352 * lrealpath.c (is_valid_fd): New function. From-SVN: r274208
2019-07-24Fix off-by-one in simple-object-elf.c (PR lto/91228).Martin Liska2-2/+8
2019-07-24 Martin Liska <mliska@suse.cz> PR lto/91228 * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Find first '\0' starting from gnu_lto + 1. From-SVN: r273757
2019-07-23libiberty: Check zero value shstrndx in simple-object-elf.cRen Kimura2-1/+14
From-SVN: r273718
2019-07-22Do not emit __gnu_lto_v1 symbol.Martin Liska2-15/+13
2019-07-22 Martin Liska <mliska@suse.cz> * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update comment. * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol. 2019-07-22 Martin Liska <mliska@suse.cz> * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1. * config/pa/t-stublib: Likewise. 2019-07-22 Martin Liska <mliska@suse.cz> * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Do not search for gnu_lto_v1, but search for first '\0'. From-SVN: r273662
2019-07-18demangle.h (rust_is_mangled): Move to libiberty/rust-demangle.h.Eduard-Mihai Burtescu4-0/+53
include/ * demangle.h (rust_is_mangled): Move to libiberty/rust-demangle.h. (rust_demangle_sym): Move to libiberty/rust-demangle.h. libiberty/ * cplus-dem.c: Include rust-demangle.h. * rust-demangle.c: Include rust-demangle.h. * rust-demangle.h: New file. From-SVN: r273573
2019-05-31cp-demangle.c: Don't define CP_DYNAMIC_ARRAYS if __STDC_NO_VLA__ is non-zero.Michael Forney2-2/+7
* cp-demangle.c: Don't define CP_DYNAMIC_ARRAYS if __STDC_NO_VLA__ is non-zero. From-SVN: r271819
2019-04-30d-demangle.c (dlang_parse_assocarray): Correctly handle error result.Ben L3-0/+12
* d-demangle.c (dlang_parse_assocarray): Correctly handle error result. * testsuite/d-demangle-expected: Add testcase. From-SVN: r270700
2019-04-30d-demangle.c (dlang_parse_tuple): Correctly handle error result.Ben L3-0/+10
* d-demangle.c (dlang_parse_tuple): Correctly handle error result. * testsuite/d-demangle-expected: Add testcase. From-SVN: r270699
2019-04-30d-demangle.c (dlang_parse_structlit): Correctly handle error result.Ben L3-0/+10
* d-demangle.c (dlang_parse_structlit): Correctly handle error result. * testsuite/d-demangle-expected: Add testcase. From-SVN: r270698
2019-04-30d-demangle.c (dlang_parse_arrayliteral): Correctly handle error result.Ben L3-0/+10
* d-demangle.c (dlang_parse_arrayliteral): Correctly handle error result. * testsuite/d-demangle-expected: Add testcase. From-SVN: r270697
2019-04-30d-demangle.c (dlang_parse_integer): Fix stack underflow.Ben L3-3/+10
* d-demangle.c (dlang_parse_integer): Fix stack underflow. * testsuite/d-demangle-expected: Add testcase. From-SVN: r270696
2019-04-30cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'.Ben L3-6/+14
* cp-demangle (d_print_comp_inner): Guard against a NULL 'typed_name'. * testsuite/demangle-expected: Add testcase. From-SVN: r270695
2019-04-30cp-demangle.c (d_encoding): Guard against NULL return values from d_right (dc).Ben L3-2/+19
* cp-demangle.c (d_encoding): Guard against NULL return values from d_right (dc). * testsuite/demangle-expected: Add testcase. From-SVN: r270694
2019-04-29cp-demangle.c (d_expression_1): Don't peek ahead unless the current char is ↵Ben L3-1/+11
valid. * cp-demangle.c (d_expression_1): Don't peek ahead unless the current char is valid. * testsuite/demangle-expected: Add testcase. From-SVN: r270664
2019-04-10Fix a stack exhaustion bug in libiberty's demangler when decoding a ↵Nick Clifton2-22/+39
pathalogically constructed mangled name. PR 89394 * cp-demangle.c (cplus_demangle_fill_name): Reject negative lengths. (d_count_templates_scopes): Replace num_templates and num_scopes parameters with a struct d_print_info pointer parameter. Adjust body of the function accordingly. Add recursion counter and check that the recursion limit is not reached. (d_print_init): Pass dpi parameter to d_count_templates_scopes. Reset recursion counter afterwards, unless the recursion limit was reached. From-SVN: r270258
2019-04-07Regenerate libiberty/functions.texiAlan Modra2-27/+34
This patch just picks up changes made in r231983 (git 2afaef0360) and r268793 (git 0f7c25df5f). * functions.texi: Regenerate. From-SVN: r270189
2019-03-14hash-table.h (remove_elt_with_hash): Return if slot is NULL rather than if ↵Jason Merrill2-1/+7
is_empty (*slot). * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather than if is_empty (*slot). * hash-set-tests.c (test_set_of_strings): Add tests for addition of existing elt and for elt removal. * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal of already removed elt. * hashtab.c (htab_remove_elt_with_hash): Return if slot is NULL rather than if *slot is HTAB_EMPTY_ENTRY. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r269695
2019-02-12Fix splay tree KEY leak detected in GDB test gdb.base/macscp.expPhilippe Waroquiers2-3/+16
When a node is removed from a splay tree, the splay tree was not using the function splay_tree_delete_key_fn to release the key. This was causing a leak, fixed by Tom Tromey. This patch fixes another key leak, that happens when a key equal to a key already present is inserted. In such a case, we have to release the old KEY. Note that this is based on the assumption that the caller always allocates a new KEY when doing an insert. Also, clarify the documentation about when the release functions are called. 2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be> * splay-tree.h (splay_tree_delete_key_fn): Update comment. (splay_tree_delete_value_fn): Likewise. libiberty/ChangeLog 2019-02-11 Philippe Waroquiers <philippe.waroquiers@skynet.be> * splay-tree.c (splay_tree_insert): Also release old KEY in case of insertion of a key equal to an already present key. (splay_tree_new_typed_alloc): Update comment. From-SVN: r268793
2019-01-22re PR lto/88422 (collect2.exe: fatal error: lto-wrapper returned 1 exit ↵Nidal Faour2-1/+12
status: file not recognized: file truncated) 2019-01-22 Nidal Faour <nidal.faour@wdc.com> PR lto/88422 * simple-object.c (O_BINARY): Define if not already defined. (simple_object_copy_lto_debug_sections): Create file in binary mode. From-SVN: r268141
2019-01-21Fix leak in splay-treeTom Tromey2-0/+6
Philippe Waroquiers noticed a memory leak in gdb, which he tracked down to a bug in splay-tree. splay_tree_remove does not call the `delete_key' function when it removes the old node; but it should. I looked at every splay tree in GCC and there is only one that passes a non-NULL delete function -- the one in lto.c. That file does not call splay_tree_remove. So, I think this is safe to check in. I re-ran the LTO tests to double check. libiberty/ * splay-tree.c (splay_tree_remove): Delete the key if necessary. From-SVN: r268116
2019-01-14Implement P0482R5, char8_t: A type for UTF-8 characters and stringsTom Honermann3-7/+20
gcc/cp/ * cvt.c (type_promotes_to): Handle char8_t promotion. * decl.c (grokdeclarator): Handle invalid type specifier combinations involving char8_t. * lex.c (init_reswords): Add char8_t as a reserved word. * mangle.c (write_builtin_type): Add name mangling for char8_t (Du). * parser.c (cp_keyword_starts_decl_specifier_p) (cp_parser_simple_type_specifier): Recognize char8_t as a simple type specifier. (cp_parser_string_literal): Use char8_array_type_node for the type of CPP_UTF8STRING. (cp_parser_set_decl_spec_type): Tolerate char8_t typedefs in system headers. * rtti.c (emit_support_tinfos): type_info support for char8_t. * tree.c (char_type_p): Recognize char8_t as a character type. * typeck.c (string_conv_p): Handle conversions of u8 string literals of char8_t type. (check_literal_operator_args): Handle UDLs with u8 string literals of char8_t type. * typeck2.c (ordinary_char_type_p): New. (digest_init_r): Disallow initializing a char array with a u8 string literal. gcc/c-family/ * c-common.c (c_common_reswords): Add char8_t. (fix_string_type): Use char8_t for the type of u8 string literals. (c_common_get_alias_set): char8_t doesn't alias. (c_common_nodes_and_builtins): Define char8_t as a builtin type in C++. (c_stddef_cpp_builtins): Add __CHAR8_TYPE__. (keyword_begins_type_specifier): Add RID_CHAR8. * c-common.h (rid): Add RID_CHAR8. (c_tree_index): Add CTI_CHAR8_TYPE and CTI_CHAR8_ARRAY_TYPE. Define D_CXX_CHAR8_T and D_CXX_CHAR8_T_FLAGS. Define char8_type_node and char8_array_type_node. * c-cppbuiltin.c (cpp_atomic_builtins): Predefine __GCC_ATOMIC_CHAR8_T_LOCK_FREE. (c_cpp_builtins): Predefine __cpp_char8_t. * c-lex.c (lex_string): Use char8_array_type_node as the type of CPP_UTF8STRING. (lex_charconst): Use char8_type_node as the type of CPP_UTF8CHAR. * c-opts.c: If not otherwise specified, enable -fchar8_t when targeting C++2a. * c.opt: Add the -fchar8_t command line option. libiberty/ * cp-demangle.c (cplus_demangle_builtin_types) (cplus_demangle_type): Add name demangling for char8_t (Du). * cp-demangle.h: Increase D_BUILTIN_TYPE_COUNT to accommodate the new char8_t type. From-SVN: r267923
2019-01-09PR other/16615 [2/5]Sandra Loosemore4-4/+12
2019-01-09 Sandra Loosemore <sandra@codesourcery.com> PR other/16615 [2/5] include/ * libiberty.h: Mechanically replace "can not" with "cannot". * plugin-api.h: Likewise. libiberty/ * cp-demangle.c: Mechanically replace "can not" with "cannot". * floatformat.c: Likewise. * strerror.c: Likewise. From-SVN: r267784
2019-01-01Update copyright years.Jakub Jelinek93-93/+97
From-SVN: r267494