aganea created this revision. aganea added reviewers: spatel, rnk, nikic, chandlerc, MaskRay, martong, ioeric. aganea added projects: LLVM, clang, lld. Herald added subscribers: rnkovacs, arichardson, mgorny, nhaehnle, jvesely, mehdi_amini, emaste, arsenm. Herald added a reviewer: espindola. Herald added a reviewer: shafik.
This fixes some warnings when compiling Clang & LLD on a out-of-the-box WSL/Ubuntu 18.04 shell. https://reviews.llvm.org/D61046 Files: clang/trunk/unittests/AST/ASTImporterTest.cpp clang/trunk/unittests/Tooling/LookupTest.cpp lld/trunk/ELF/LinkerScript.cpp llvm/trunk/include/llvm/BinaryFormat/ELF.h llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp llvm/trunk/unittests/IR/ConstantRangeTest.cpp llvm/trunk/unittests/Support/TypeTraitsTest.cpp llvm/trunk/unittests/Transforms/Scalar/CMakeLists.txt llvm/trunk/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
Index: llvm/trunk/unittests/Transforms/Scalar/LoopPassManagerTest.cpp =================================================================== --- llvm/trunk/unittests/Transforms/Scalar/LoopPassManagerTest.cpp +++ llvm/trunk/unittests/Transforms/Scalar/LoopPassManagerTest.cpp @@ -20,19 +20,9 @@ #include "llvm/IR/PassManager.h" #include "llvm/Support/SourceMgr.h" -// Workaround for the gcc 6.1 bug PR80916. -#if defined(__GNUC__) && __GNUC__ > 5 -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wunused-function" -#endif - #include "gmock/gmock.h" #include "gtest/gtest.h" -#if defined(__GNUC__) && __GNUC__ > 5 -# pragma GCC diagnostic pop -#endif - using namespace llvm; namespace { Index: llvm/trunk/unittests/Transforms/Scalar/CMakeLists.txt =================================================================== --- llvm/trunk/unittests/Transforms/Scalar/CMakeLists.txt +++ llvm/trunk/unittests/Transforms/Scalar/CMakeLists.txt @@ -10,3 +10,8 @@ add_llvm_unittest(ScalarTests LoopPassManagerTest.cpp ) + +# Workaround for the gcc 6.1 bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80916. +if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.1) + set_source_files_properties(LoopPassManagerTest.cpp PROPERTIES COMPILE_FLAGS -Wno-unused-function) +endif() Index: llvm/trunk/unittests/Support/TypeTraitsTest.cpp =================================================================== --- llvm/trunk/unittests/Support/TypeTraitsTest.cpp +++ llvm/trunk/unittests/Support/TypeTraitsTest.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/type_traits.h" +#include "gtest/gtest.h" namespace { @@ -71,6 +72,26 @@ template void TrivialityTester<A &&, false, true>(); template void TrivialityTester<B &&, false, true>(); +TEST(Triviality, Tester) { + TrivialityTester<int, true, true>(); + TrivialityTester<void *, true, true>(); + TrivialityTester<int &, true, true>(); + TrivialityTester<int &&, false, true>(); + + TrivialityTester<X, true, true>(); + TrivialityTester<Y, false, false>(); + TrivialityTester<Z, false, false>(); + TrivialityTester<A, true, false>(); + TrivialityTester<B, false, true>(); + + TrivialityTester<Z &, true, true>(); + TrivialityTester<A &, true, true>(); + TrivialityTester<B &, true, true>(); + TrivialityTester<Z &&, false, true>(); + TrivialityTester<A &&, false, true>(); + TrivialityTester<B &&, false, true>(); +} + } // namespace triviality } // end anonymous namespace Index: llvm/trunk/unittests/IR/ConstantRangeTest.cpp =================================================================== --- llvm/trunk/unittests/IR/ConstantRangeTest.cpp +++ llvm/trunk/unittests/IR/ConstantRangeTest.cpp @@ -395,6 +395,10 @@ } } +#if defined(__GNUC__) && __GNUC__ >= 7 + // Silence warning: variable 'HaveInterrupt3' set but not used + (void)&HaveInterrupt3; +#endif assert(!HaveInterrupt3 && "Should have at most three ranges"); ConstantRange SmallestCR = OpFn(CR1, CR2, ConstantRange::Smallest); Index: llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp =================================================================== --- llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp +++ llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp @@ -1714,6 +1714,10 @@ if (NewBldVec[i].isUndef()) continue; + // Fix spurious warning with gcc 7.3 -O3 for NewBldVec[i] below + // warning: array subscript is above array bounds [-Warray-bounds] + if (i >= 4) + continue; for (unsigned j = 0; j < i; j++) { if (NewBldVec[i] == NewBldVec[j]) { NewBldVec[i] = DAG.getUNDEF(NewBldVec[i].getValueType()); Index: llvm/trunk/include/llvm/BinaryFormat/ELF.h =================================================================== --- llvm/trunk/include/llvm/BinaryFormat/ELF.h +++ llvm/trunk/include/llvm/BinaryFormat/ELF.h @@ -875,6 +875,8 @@ // Section flags. enum : unsigned { + SHF_NONE, + // Section data should be writable during execution. SHF_WRITE = 0x1, Index: lld/trunk/ELF/LinkerScript.cpp =================================================================== --- lld/trunk/ELF/LinkerScript.cpp +++ lld/trunk/ELF/LinkerScript.cpp @@ -887,8 +887,8 @@ // in case it is empty. bool IsEmpty = getInputSections(Sec).empty(); if (IsEmpty) - Sec->Flags = - Flags & ((Sec->NonAlloc ? 0 : SHF_ALLOC) | SHF_WRITE | SHF_EXECINSTR); + Sec->Flags = Flags & ((Sec->NonAlloc ? SHF_NONE : SHF_ALLOC) | SHF_WRITE | + SHF_EXECINSTR); if (IsEmpty && isDiscardable(*Sec)) { Sec->Live = false; Index: clang/trunk/unittests/Tooling/LookupTest.cpp =================================================================== --- clang/trunk/unittests/Tooling/LookupTest.cpp +++ clang/trunk/unittests/Tooling/LookupTest.cpp @@ -217,8 +217,9 @@ // `x::y::Foo` in c.cc [1], it should not make "Foo" at [0] ambiguous because // it's not visible at [0]. Visitor.OnRecordTypeLoc = [&](RecordTypeLoc Type) { - if (Type.getDecl()->getQualifiedNameAsString() == "x::y::Old") + if (Type.getDecl()->getQualifiedNameAsString() == "x::y::Old") { EXPECT_EQ("Foo", replaceRecordTypeLoc(Type, "::x::Foo")); + } }; Visitor.runOver(R"( // a.h Index: clang/trunk/unittests/AST/ASTImporterTest.cpp =================================================================== --- clang/trunk/unittests/AST/ASTImporterTest.cpp +++ clang/trunk/unittests/AST/ASTImporterTest.cpp @@ -4048,8 +4048,9 @@ auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern()); EXPECT_TRUE(ImportedD == ToD); EXPECT_FALSE(ToD->isThisDeclarationADefinition()); - if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) + if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) { EXPECT_TRUE(ToT->getTemplatedDecl()); + } } void TypedTest_DefinitionShouldBeImportedAsADefinition() { @@ -4063,8 +4064,9 @@ EXPECT_EQ(DeclCounter<DeclTy>().match(ToTU, getPattern()), 1u); auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern()); EXPECT_TRUE(ToD->isThisDeclarationADefinition()); - if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) + if (auto *ToT = dyn_cast<TemplateDecl>(ToD)) { EXPECT_TRUE(ToT->getTemplatedDecl()); + } } void TypedTest_ImportPrototypeAfterImportedPrototype() { @@ -4177,8 +4179,9 @@ auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern()); EXPECT_TRUE(Imported0 == To0); EXPECT_TRUE(To0->isThisDeclarationADefinition()); - if (auto *ToT0 = dyn_cast<TemplateDecl>(To0)) + if (auto *ToT0 = dyn_cast<TemplateDecl>(To0)) { EXPECT_TRUE(ToT0->getTemplatedDecl()); + } } void TypedTest_ImportDefinitionThenPrototype() {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits