diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -663,7 +663,13 @@ if (GV.isDeclarationForLinker()) Check(!GV.hasComdat(), "Declaration may not be in a Comdat!", &GV); + if (GV.hasDLLExportStorageClass()) { + Check(GV.hasDefaultVisibility(), + "dllexport GlobalValue must have default visibility", &GV); + } if (GV.hasDLLImportStorageClass()) { + Check(GV.hasDefaultVisibility(), + "dllimport GlobalValue must have default visibility", &GV); Check(!GV.isDSOLocal(), "GlobalValue with DLLImport Storage is dso_local!", &GV); diff --git a/llvm/test/CodeGen/PowerPC/aix-xcoff-exported-nondefault.ll b/llvm/test/CodeGen/PowerPC/aix-xcoff-exported-nondefault.ll --- a/llvm/test/CodeGen/PowerPC/aix-xcoff-exported-nondefault.ll +++ b/llvm/test/CodeGen/PowerPC/aix-xcoff-exported-nondefault.ll @@ -1,15 +1,5 @@ -; RUN: not --crash llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff 2>&1 < %s | \ -; RUN: FileCheck %s -; RUN: not --crash llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff 2>&1 < %s |\ -; RUN: FileCheck %s +; RUN: not llc -filetype=null -mtriple powerpc-ibm-aix-xcoff 2>&1 %s | FileCheck %s +; RUN: not llc -filetype=null -mtriple powerpc64-ibm-aix-xcoff 2>&1 %s | FileCheck %s -; RUN: not --crash llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff \ -; RUN: -filetype=obj -o %t.o < %s 2>&1 | \ -; RUN: FileCheck %s - -; RUN: not --crash llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff \ -; RUN: -filetype=obj -o %t.o 2>&1 < %s 2>&1 | \ -; RUN: FileCheck %s - -; CHECK: LLVM ERROR: Cannot not be both dllexport and non-default visibility +; CHECK: dllexport GlobalValue must have default visibility @b_e = hidden dllexport global i32 0, align 4 diff --git a/llvm/test/Feature/globalvars.ll b/llvm/test/Feature/globalvars.ll --- a/llvm/test/Feature/globalvars.ll +++ b/llvm/test/Feature/globalvars.ll @@ -16,5 +16,5 @@ ret i32 %blah } -@1 = hidden dllexport global i32 42 +@1 = default dllexport global i32 42 @2 = dllexport global i32 42