aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-07-15 00:10:33 +0000
committerChris Lattner <sabre@nondot.org>2002-07-15 00:10:33 +0000
commit5659dd1af838b787199271c5c47488c31953ac18 (patch)
tree1fa0d59f33b0d1b0a5fd6d6cbcaff30e4e656686
parent38c42725fe9ad6f50cd45e32a408e5fda370971c (diff)
Fix bug: test/Regression/Assembler/2002-07-14-InternalLossage.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2907 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/AsmParser/llvmAsmParser.y5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index c81ac34eb8..a26ea80c81 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1198,6 +1198,11 @@ FunctionHeaderH : OptInternal TypesV FuncName '(' ArgList ')' {
if (!CurMeth.isDeclare && !M->isExternal())
ThrowException("Redefinition of function '" + FunctionName + "'!");
+ // Make sure that we keep track of the internal marker, even if there was
+ // a previous "declare".
+ if ($1)
+ M->setInternalLinkage(true);
+
// If we found a preexisting function prototype, remove it from the
// module, so that we don't get spurious conflicts with global & local
// variables.