c++: Change the mangling of __alignof__ [PR88115]
This patch changes the mangling of __alignof__ to v111__alignof__, making its mangling distinct from that of alignof(type) and alignof(expr). How we mangle ALIGNOF_EXPR now depends on its ALIGNOF_EXPR_STD_P flag, which after the previous patch gets consistently set for alignof(type) as well as alignof(expr). gcc/c-family/ChangeLog: PR c++/88115 * c-opts.c (c_common_post_options): Update latest_abi_version. gcc/ChangeLog: PR c++/88115 * common.opt (-fabi-version): Document =15. * doc/invoke.texi (C++ Dialect Options): Likewise. gcc/cp/ChangeLog: PR c++/88115 * mangle.c (write_expression): Mangle __alignof_ differently from alignof when the ABI version is at least 15. libiberty/ChangeLog: PR c++/88115 * cp-demangle.c (d_print_comp_inner) <case DEMANGLE_COMPONENT_EXTENDED_OPERATOR>: Don't print the "operator " prefix for __alignof__. <case DEMANGLE_COMPONENT_UNARY>: Always print parens around the operand of __alignof__. * testsuite/demangle-expected: Test demangling for __alignof__. gcc/testsuite/ChangeLog: PR c++/88115 * g++.dg/abi/macro0.C: Adjust. * g++.dg/cpp0x/alignof7.C: New test. * g++.dg/cpp0x/alignof8.C: New test.
Showing
- gcc/c-family/c-opts.c 1 addition, 1 deletiongcc/c-family/c-opts.c
- gcc/common.opt 4 additions, 0 deletionsgcc/common.opt
- gcc/cp/mangle.c 23 additions, 4 deletionsgcc/cp/mangle.c
- gcc/doc/invoke.texi 3 additions, 0 deletionsgcc/doc/invoke.texi
- gcc/testsuite/g++.dg/abi/macro0.C 1 addition, 1 deletiongcc/testsuite/g++.dg/abi/macro0.C
- gcc/testsuite/g++.dg/cpp0x/alignof7.C 22 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/alignof7.C
- gcc/testsuite/g++.dg/cpp0x/alignof8.C 13 additions, 0 deletionsgcc/testsuite/g++.dg/cpp0x/alignof8.C
- libiberty/cp-demangle.c 20 additions, 5 deletionslibiberty/cp-demangle.c
- libiberty/testsuite/demangle-expected 7 additions, 0 deletionslibiberty/testsuite/demangle-expected
Loading
Please register or sign in to comment