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
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index c81ac34..a26ea80 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1198,6 +1198,11 @@
       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.