[llvm] r290400 - Enable '-Wstring-conversion' and fix some bad asserts that it helped

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 22 18:36:49 PST 2016


On Thu, Dec 22, 2016 at 5:38 PM, Chandler Carruth via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: chandlerc
> Date: Thu Dec 22 19:38:06 2016
> New Revision: 290400
>
> URL: http://llvm.org/viewvc/llvm-project?rev=290400&view=rev
> Log:
> Enable '-Wstring-conversion' and fix some bad asserts that it helped
> find.
>
> Notable is the assert in NewGVN which had no effect because of the bug.
>

Nice catch, thanks!

> Modified:
>     llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
>     llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
>     llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp
>
> Modified: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake?rev=290400&r1=290399&r2=290400&view=diff
> ==============================================================================
> --- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (original)
> +++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake Thu Dec 22 19:38:06 2016
> @@ -454,6 +454,9 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE
>      if (NOT C_WCOMMENT_ALLOWS_LINE_WRAP)
>        append("-Wno-comment" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
>      endif()
> +
> +    # Enable -Wstring-conversion to catch misuse of string literals.
> +    add_flag_if_supported("-Wstring-conversion" STRING_CONVERSION_FLAG)
>    endif (LLVM_ENABLE_WARNINGS)
>    append_if(LLVM_ENABLE_WERROR "-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
>    add_flag_if_supported("-Werror=date-time" WERROR_DATE_TIME)
>
> Modified: llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp?rev=290400&r1=290399&r2=290400&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp Thu Dec 22 19:38:06 2016
> @@ -45,7 +45,7 @@ public:
>    }
>    void relaxInstruction(const MCInst &Inst, const MCSubtargetInfo &STI,
>                          MCInst &Res) const override {
> -    assert(!"Not implemented");
> +    llvm_unreachable("Not implemented");
>    }
>    bool mayNeedRelaxation(const MCInst &Inst) const override { return false; }
>    bool writeNopData(uint64_t Count, MCObjectWriter *OW) const override;
>
> Modified: llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp?rev=290400&r1=290399&r2=290400&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/NewGVN.cpp Thu Dec 22 19:38:06 2016
> @@ -1487,7 +1487,7 @@ void NewGVN::convertDenseToDFSOrdered(Co
>      BasicBlock *BB = getBlockForValue(D);
>      // Constants are handled prior to ever calling this function, so
>      // we should only be left with instructions as members.
> -    assert(BB || "Should have figured out a basic block for value");
> +    assert(BB && "Should have figured out a basic block for value");
>      ValueDFS VD;
>
>      std::pair<int, int> DFSPair = DFSDomMap[BB];
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits



-- 
Davide

"A mathematical theory is not to be considered complete until you have
made it so clear that you can explain it to the first man whom you
meet on the street." (D. Hilbert)


More information about the llvm-commits mailing list