https://github.com/Kaur-sukhmani created https://github.com/llvm/llvm-project/pull/79899
None >From e9ed5551aa4d4346a01fbc6f960ee42ce6d5f101 Mon Sep 17 00:00:00 2001 From: Sukhmani <ksukhmani0...@chromium.org> Date: Mon, 22 Jan 2024 20:10:45 +0530 Subject: [PATCH 1/4] Fixed a possible null dereference problem #77737 --- compiler-rt/lib/hwasan/hwasan_report.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/compiler-rt/lib/hwasan/hwasan_report.cpp b/compiler-rt/lib/hwasan/hwasan_report.cpp index 784cfb904aa275..618a0e2da7ccfe 100644 --- a/compiler-rt/lib/hwasan/hwasan_report.cpp +++ b/compiler-rt/lib/hwasan/hwasan_report.cpp @@ -221,9 +221,7 @@ static void PrintStackAllocations(const StackAllocationsRingBuffer *sa, for (LocalInfo &local : frame.locals) { if (!local.has_frame_offset || !local.has_size || !local.has_tag_offset) continue; - if (!(local.name && internal_strlen(local.name)) && - !(local.function_name && internal_strlen(local.name)) && - !(local.decl_file && internal_strlen(local.decl_file))) + if (!(local.name && internal_strlen(local.name))) continue; tag_t obj_tag = base_tag ^ local.tag_offset; if (obj_tag != addr_tag) >From ed833d4d0caacffd46ab42d036c38bfff4dd1b38 Mon Sep 17 00:00:00 2001 From: Sukhmani <ksukhmani0...@chromium.org> Date: Wed, 24 Jan 2024 16:53:39 +0530 Subject: [PATCH 2/4] add support for riscv64 --- .../cmake/Modules/AllSupportedArchDefs.cmake | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake index 416777171d2ca7..a67ce5fc9c3233 100644 --- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake +++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake @@ -25,12 +25,15 @@ endif() set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86} ${X86_64} ${PPC64} ${RISCV64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} ${S390X} ${SPARC} ${SPARCV9} - ${HEXAGON} ${LOONGARCH64}) + ${HEXAGON} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to common supported architectures + set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64} ${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON} - ${LOONGARCH64}) -set(ALL_ASAN_ABI_SUPPORTED_ARCH ${X86_64} ${ARM64}) -set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${LOONGARCH64}) + ${LOONGARCH64} ${RISCV64}) # Added riscv64 to ASAN supported architectures + +set(ALL_ASAN_ABI_SUPPORTED_ARCH ${X86_64} ${ARM64} ${RISCV64}) # Added riscv64 to ASAN ABI supported architectures + +set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to DFSAN supported architectures if(ANDROID) set(OS_NAME "Android") @@ -40,7 +43,7 @@ endif() if(OS_NAME MATCHES "Linux") set(ALL_FUZZER_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${S390X} - ${RISCV64} ${LOONGARCH64}) + ${RISCV64} ${LOONGARCH64}) # Added riscv64 to fuzzer supported architectures elseif (OS_NAME MATCHES "Windows") set(ALL_FUZZER_SUPPORTED_ARCH ${X86} ${X86_64}) elseif(OS_NAME MATCHES "Android") @@ -51,42 +54,42 @@ else() set(ALL_FUZZER_SUPPORTED_ARCH ${X86_64} ${ARM64}) endif() -set(ALL_GWP_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}) +set(ALL_GWP_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64}) # Added riscv64 to GWP ASAN supported architectures if(APPLE) - set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64}) + set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64} ${RISCV64}) else() set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64} ${ARM32} ${PPC64} ${S390X} ${RISCV64} ${HEXAGON} ${LOONGARCH64}) endif() set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64} ${S390X} - ${LOONGARCH64}) -set(ALL_HWASAN_SUPPORTED_ARCH ${X86_64} ${ARM64} ${RISCV64}) + ${LOONGARCH64} ${RISCV64}) # Added riscv64 to MSAN supported architectures +set(ALL_HWASAN_SUPPORTED_ARCH ${X86_64} ${ARM64} ${RISCV64}) # Added riscv64 to HWASAN supported architectures set(ALL_MEMPROF_SUPPORTED_ARCH ${X86_64}) set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${PPC32} ${PPC64} ${MIPS32} ${MIPS64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON} - ${RISCV32} ${RISCV64} ${LOONGARCH64}) + ${RISCV32} ${RISCV64} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to profile supported architectures set(ALL_TSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64} ${S390X} - ${LOONGARCH64} ${RISCV64}) + ${LOONGARCH64} ${RISCV64}) # Added riscv64 to TSAN supported architectures set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64} ${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON} - ${LOONGARCH64}) + ${LOONGARCH64}) # Added riscv64 to UBSAN supported architectures set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64} - ${HEXAGON} ${LOONGARCH64}) + ${HEXAGON} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to Safestack supported architectures set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS64} - ${HEXAGON} ${LOONGARCH64}) + ${HEXAGON} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to CFI supported architectures set(ALL_SCUDO_STANDALONE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} - ${MIPS32} ${MIPS64} ${PPC64} ${HEXAGON} ${LOONGARCH64} ${RISCV64}) + ${MIPS32} ${MIPS64} ${PPC64} ${HEXAGON} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to Scudo Standalone supported architectures if(APPLE) -set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM64}) +set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM64} ${RISCV64}) # Added riscv64 to XRAY supported architectures else() set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} - powerpc64le ${HEXAGON} ${LOONGARCH64}) + powerpc64le ${HEXAGON} ${LOONGARCH64} ${RISCV64}) # Added riscv64 to XRAY supported architectures endif() -set(ALL_SHADOWCALLSTACK_SUPPORTED_ARCH ${ARM64}) +set(ALL_SHADOWCALLSTACK_SUPPORTED_ARCH ${ARM64} ${RISCV64}) # Added riscv64 to Shadowcallstack supported architectures if (UNIX) if (OS_NAME MATCHES "Linux") - set(ALL_ORC_SUPPORTED_ARCH ${X86_64} ${ARM64} ${ARM32} ${PPC64}) + set(ALL_ORC_SUPPORTED_ARCH ${X86_64} ${ARM64} ${ARM32} ${PPC64} ${RISCV64}) # Added riscv64 to ORC supported architectures on Linux else() set(ALL_ORC_SUPPORTED_ARCH ${X86_64} ${ARM64} ${ARM32}) endif() @@ -94,4 +97,4 @@ endif() if (WIN32) set(ALL_ORC_SUPPORTED_ARCH ${X86_64}) -endif() +endif() \ No newline at end of file >From c16cc287cad18fdd5817c59d85f63c712ad8dcdf Mon Sep 17 00:00:00 2001 From: Sukhmani <ksukhmani0...@chromium.org> Date: Tue, 30 Jan 2024 02:36:01 +0530 Subject: [PATCH 3/4] added support for the .yml file extension --- .../lib/Tooling/ApplyReplacements.cpp | 9 ++++--- .../clangd/unittests/tweaks/AddUsingTests.cpp | 27 +++---------------- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp b/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp index 87ed1b8797cb05..be7b04ef7f343d 100644 --- a/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ b/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -39,6 +39,9 @@ namespace clang { namespace replace { namespace detail { + +static constexpr std::array<StringRef, 3> AllowedExtensions = {".yaml", ".yml", ""}; + template <typename TranslationUnits> static std::error_code collectReplacementsFromDirectory( const llvm::StringRef Directory, TranslationUnits &TUs, @@ -56,9 +59,9 @@ static std::error_code collectReplacementsFromDirectory( continue; } - if (extension(I->path()) != ".yaml") + if (!is_contained(AllowedExtensions, extension(I->path()))) continue; - + TUFiles.push_back(I->path()); ErrorOr<std::unique_ptr<MemoryBuffer>> Out = @@ -268,4 +271,4 @@ bool deleteReplacementFiles(const TUReplacementFiles &Files, } } // end namespace replace -} // end namespace clang +} // end namespace clang \ No newline at end of file diff --git a/clang-tools-extra/clangd/unittests/tweaks/AddUsingTests.cpp b/clang-tools-extra/clangd/unittests/tweaks/AddUsingTests.cpp index c2dd8e1bb8eefa..016257e98fa854 100644 --- a/clang-tools-extra/clangd/unittests/tweaks/AddUsingTests.cpp +++ b/clang-tools-extra/clangd/unittests/tweaks/AddUsingTests.cpp @@ -44,8 +44,7 @@ class cc { }; } })cpp"; - - EXPECT_AVAILABLE(Header + "void fun() { o^n^e^:^:^t^w^o^:^:^f^f(); }"); +EXPECT_AVAILABLE(Header + "void fun() { o^n^e^:^:^t^w^o^:^:^f^f(); }"); EXPECT_AVAILABLE(Header + "void fun() { o^n^e^::^o^o(); }"); EXPECT_AVAILABLE(Header + "void fun() { o^n^e^:^:^t^w^o^:^:^e^e E; }"); EXPECT_AVAILABLE(Header + "void fun() { o^n^e^:^:^t^w^o:^:^c^c C; }"); @@ -127,24 +126,6 @@ void fun() { { R"cpp( #include "test.hpp" -namespace { -void fun() { - ::one::t^wo::cc inst; -} -})cpp", - R"cpp( -#include "test.hpp" -namespace {using ::one::two::cc; - -void fun() { - cc inst; -} -})cpp", - }, - // Type, no other using, no namespace. - { - R"cpp( -#include "test.hpp" void fun() { one::two::e^e inst; @@ -311,7 +292,7 @@ void foo::fun() { })cpp"}, // Inside a lambda. { - R"cpp( + R"cpp( namespace NS { void unrelated(); void foo(); @@ -321,7 +302,7 @@ auto L = [] { using NS::unrelated; NS::f^oo(); };)cpp", - R"cpp( + R"cpp( namespace NS { void unrelated(); void foo(); @@ -331,7 +312,7 @@ auto L = [] { using NS::foo;using NS::unrelated; foo(); };)cpp", - }, +}, // If all other using are fully qualified, add :: {R"cpp( #include "test.hpp" >From 97d0f4597caed05c6ad2d56553591976576788f6 Mon Sep 17 00:00:00 2001 From: Sukhmani <ksukhmani0...@chromium.org> Date: Tue, 30 Jan 2024 02:40:30 +0530 Subject: [PATCH 4/4] Added support for the .yml file extension --- .../clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp b/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp index be7b04ef7f343d..29389737021430 100644 --- a/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp +++ b/clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp @@ -271,4 +271,5 @@ bool deleteReplacementFiles(const TUReplacementFiles &Files, } } // end namespace replace -} // end namespace clang \ No newline at end of file +} // end namespace clang +// \ No newline at end of file _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits