[llvm] r241414 - Verifier: Forbid comdats on linker declarations.

Peter Collingbourne peter at pcc.me.uk
Sun Jul 5 13:52:40 PDT 2015


Author: pcc
Date: Sun Jul  5 15:52:40 2015
New Revision: 241414

URL: http://llvm.org/viewvc/llvm-project?rev=241414&view=rev
Log:
Verifier: Forbid comdats on linker declarations.

Differential Revision: http://reviews.llvm.org/D10945

Added:
    llvm/trunk/test/Verifier/comdat-decl1.ll
    llvm/trunk/test/Verifier/comdat-decl2.ll
Modified:
    llvm/trunk/lib/IR/Verifier.cpp

Modified: llvm/trunk/lib/IR/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=241414&r1=241413&r2=241414&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Verifier.cpp (original)
+++ llvm/trunk/lib/IR/Verifier.cpp Sun Jul  5 15:52:40 2015
@@ -438,6 +438,9 @@ void Verifier::visitGlobalValue(const Gl
     Assert(GVar && GVar->getValueType()->isArrayTy(),
            "Only global arrays can have appending linkage!", GVar);
   }
+
+  if (GV.isDeclarationForLinker())
+    Assert(!GV.hasComdat(), "Declaration may not be in a Comdat!", &GV);
 }
 
 void Verifier::visitGlobalVariable(const GlobalVariable &GV) {

Added: llvm/trunk/test/Verifier/comdat-decl1.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/comdat-decl1.ll?rev=241414&view=auto
==============================================================================
--- llvm/trunk/test/Verifier/comdat-decl1.ll (added)
+++ llvm/trunk/test/Verifier/comdat-decl1.ll Sun Jul  5 15:52:40 2015
@@ -0,0 +1,5 @@
+; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
+
+$v = comdat any
+ at v = available_externally global i32 0, comdat
+; CHECK: Declaration may not be in a Comdat!

Added: llvm/trunk/test/Verifier/comdat-decl2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/comdat-decl2.ll?rev=241414&view=auto
==============================================================================
--- llvm/trunk/test/Verifier/comdat-decl2.ll (added)
+++ llvm/trunk/test/Verifier/comdat-decl2.ll Sun Jul  5 15:52:40 2015
@@ -0,0 +1,5 @@
+; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
+
+$v = comdat any
+ at v = external global i32, comdat
+; CHECK: Declaration may not be in a Comdat!





More information about the llvm-commits mailing list