[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead created this revision. Herald added subscribers: lxfind, dang. pcwang-thead requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Since C++14 has been released for about seven years and most standard libraries have implemented sized deallocation functions, it's time to make this feature default again. For tests assumed that sized deallocation is disabled, just force them to disable this feature by adding -fno-sized-deallocation. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D112921 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DTVOS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DWATCHOS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DZOS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DZOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fno-siz
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 383781. pcwang-thead added a comment. Herald added a project: clang-tools-extra. Fix errors in clang-tools-extra\test\clang-tidy\checkers\misc-new-delete-overloads.cpp Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DTVOS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DWATCHOS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DZOS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DZOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DTVOS %s +// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fno-si
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 383789. pcwang-thead added a comment. Herald added subscribers: usaxena95, kadircet, arphaman. Add `-fno-sized-allocation` to: - `clang\test\AST\ast-dump-expr-json.cpp` - `clang\test\AST\ast-dump-stmt-json.cpp` - `clang\test\CodeGenCXX\dllimport.cpp` - `clang\test\SemaCXX\MicrosoftExtensions.cpp` - `clang-tools-extra/clangd/unittests/FindTargetTests.cpp` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/clangd/unittests/FindTargetTests.cpp clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr-json.cpp clang/test/AST/ast-dump-expr.cpp clang/test/AST/ast-dump-stmt-json.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/dllimport.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/MicrosoftExtensions.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DTVOS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DWATCHOS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DZOS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DZOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-siz
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 383953. pcwang-thead added a comment. - Changes to `Args.AddLastArg(CmdArgs, ...)` - Adds a note to `clang/docs/ReleaseNotes.rst` - Fixs clangd test failure. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/clangd/unittests/FindTargetTests.cpp clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/dllimport.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/MicrosoftExtensions.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DTVOS %s -// RUN: %clang_cc1 -triple arm64-apple-tvos10.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DWATCHOS %s -// RUN: %clang_cc1 -triple armv7k-apple-watchos3.0.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DZOS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple s390x-none-zos -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DZOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fno-sized-deallocation -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-sized-deallocation -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DIOS %s +// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fno-sized-deallocation -fexceptions -std=c++1z -verify -DNO_ERRORS %s +// RUN: %clang_cc1 -triple arm64-apple-tvos
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 383970. pcwang-thead added a comment. Herald added a project: libc++. Herald added a subscriber: libcxx-commits. Herald added a reviewer: libc++. Removes unnecessary -fno-sized-deallocation and some comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/clangd/unittests/FindTargetTests.cpp clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/dllimport.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/MicrosoftExtensions.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp @@ -9,9 +9,6 @@ // test sized operator delete replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 - -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. // XFAIL: clang, apple-clang #include Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp @@ -9,9 +9,6 @@ // test sized operator delete[] replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 - -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. // XFAIL: clang, apple-clang #include Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1 -triple arm64-apple-ios10.0.0 -fexceptions -faligned-alloc-unavailable
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 383981. pcwang-thead marked an inline comment as done. pcwang-thead added a comment. - Regenerate `clang\test\AST\ast-dump-stmt-json.cpp` and `clang\test\AST\ast-dump-expr-json.cpp`. - Format code. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/clangd/unittests/FindTargetTests.cpp clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr-json.cpp clang/test/AST/ast-dump-expr.cpp clang/test/AST/ast-dump-stmt-json.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/dllimport.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/MicrosoftExtensions.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp @@ -9,9 +9,6 @@ // test sized operator delete replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 - -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. // XFAIL: clang, apple-clang #include Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp @@ -9,9 +9,6 @@ // test sized operator delete[] replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 - -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. // XFAIL: clang, apple-clang #include Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 384089. pcwang-thead added a comment. Makes required changes Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/clangd/unittests/FindTargetTests.cpp clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr-json.cpp clang/test/AST/ast-dump-expr.cpp clang/test/AST/ast-dump-stmt-json.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/dllimport.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/MicrosoftExtensions.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp @@ -9,10 +9,8 @@ // test sized operator delete replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 - -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. -// XFAIL: clang, apple-clang +// XFAIL: clang-12, clang-13 +// XFAIL: apple-clang-13 #include #include Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp @@ -9,10 +9,8 @@ // test sized operator delete[] replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 - -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. -// XFAIL: clang, apple-clang +// XFAIL: clang-12, clang-13 +// XFAIL: apple-clang-13 #include #include Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @@ -81,7 +81,7 @@ } )", Diags)); - EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 1\n"); + EXPECT_EQ(Diags, "test.CXXDeallocator: NumArgs: 2\n"); } } // namespace Index: clang/test/SemaCXX/unavailable_aligned_allocation.cpp === --- clang/test/SemaCXX/unavailable_aligned_allocation.cpp +++ clang/test/SemaCXX/unavailable_aligned_allocation.cpp @@ -1,15 +1,15 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-alloc-unavailable -std=c++1z -verify -DMACOS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -std=c++1z -verify -DNO_ERRORS %s -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.13.0 -fexceptions -faligned-allocation -faligned-alloc-unavailable -std=c++14 -verify -DMACOS %s -// RUN: %clang_cc1 -t
[PATCH] D112921: [clang] Enable sized deallocation by default in C++14 onwards
pcwang-thead updated this revision to Diff 384344. pcwang-thead marked an inline comment as done. pcwang-thead added a comment. Adds `ADDITIONAL_COMPILE_FLAGS` and guard macros to: - `libcxx\test\std\language.support\support.dynamic\new.delete\new.delete.single\sized_delete14.pass.cpp` - `libcxx\test\std\language.support\support.dynamic\new.delete\new.delete.array\sized_delete_array14.pass.cpp` Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112921/new/ https://reviews.llvm.org/D112921 Files: clang-tools-extra/clangd/unittests/FindTargetTests.cpp clang-tools-extra/test/clang-tidy/checkers/misc-new-delete-overloads.cpp clang/docs/ReleaseNotes.rst clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/Clang.cpp clang/test/AST/ast-dump-expr-json.cpp clang/test/AST/ast-dump-expr.cpp clang/test/AST/ast-dump-stmt-json.cpp clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp clang/test/CodeGenCXX/delete-two-arg.cpp clang/test/CodeGenCXX/delete.cpp clang/test/CodeGenCXX/dllimport.cpp clang/test/CodeGenCXX/new.cpp clang/test/CodeGenCoroutines/coro-alloc.cpp clang/test/CodeGenCoroutines/coro-cleanup.cpp clang/test/CodeGenCoroutines/coro-gro.cpp clang/test/SemaCXX/MicrosoftExtensions.cpp clang/test/SemaCXX/builtin-operator-new-delete.cpp clang/test/SemaCXX/unavailable_aligned_allocation.cpp clang/unittests/StaticAnalyzer/CallEventTest.cpp clang/www/cxx_status.html libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp @@ -9,10 +9,19 @@ // test sized operator delete replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 +// XFAIL: clang-12, clang-13 +// XFAIL: apple-clang-13 -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. -// XFAIL: clang, apple-clang +// REQUIRES: -fsized-deallocation +// ADDITIONAL_COMPILE_FLAGS: -fsized-deallocation + +#if !defined(__cpp_sized_deallocation) +# error __cpp_sized_deallocation should be defined +#endif + +#if !(__cpp_sized_deallocation >= 201309L) +# error expected __cpp_sized_deallocation >= 201309L +#endif #include #include Index: libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp === --- libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp +++ libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp @@ -9,10 +9,19 @@ // test sized operator delete[] replacement. // UNSUPPORTED: sanitizer-new-delete, c++03, c++11 +// XFAIL: clang-12, clang-13 +// XFAIL: apple-clang-13 -// NOTE: Clang does not enable sized-deallocation in C++14 and beyond by -// default. It is only enabled when -fsized-deallocation is given. -// XFAIL: clang, apple-clang +// REQUIRES: -fsized-deallocation +// ADDITIONAL_COMPILE_FLAGS: -fsized-deallocation + +#if !defined(__cpp_sized_deallocation) +# error __cpp_sized_deallocation should be defined +#endif + +#if !(__cpp_sized_deallocation >= 201309L) +# error expected __cpp_sized_deallocation >= 201309L +#endif #include #include Index: clang/www/cxx_status.html === --- clang/www/cxx_status.html +++ clang/www/cxx_status.html @@ -578,12 +578,11 @@ -(7): In Clang 3.7 and later, sized deallocation is only enabled -if the user passes the -fsized-deallocation flag. The user must -supply definitions of the sized deallocation functions, either by providing them -explicitly or by using a C++ standard library that does. libstdc++ -added these functions in version 5.0, and libc++ added them in -version 3.7. +(7): The user must supply definitions of the sized deallocation +functions, either by providing them explicitly or by using a C++ standard library +that does. libstdc++ added these functions in version 5.0, and +libc++ added them in version 3.7. The user can also use the +-fno-sized-deallocation option to disable sized deallocation. Index: clang/unittests/StaticAnalyzer/CallEventTest.cpp === --- clang/unittests/StaticAnalyzer/CallEventTest.cpp +++ clang/unittests/StaticAnalyzer/CallEventTest.cpp @