When printing out a function, make sure that local and global symbols
authorChris Lattner <sabre@nondot.org>
Sun, 5 Dec 2004 06:44:09 +0000 (06:44 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 5 Dec 2004 06:44:09 +0000 (06:44 +0000)
don't conflict.  This fixes Assembler/2004-12-05-LocalGlobalSymtabConflict.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18532 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/AsmWriter.cpp

index 0b10218ca40e2bfda5dd3e5a597b801d04032dfd..dde6b9dd722d4f78ce2126ab293ef8a87811fe1c 100644 (file)
@@ -879,6 +879,9 @@ void AssemblyWriter::printFunction(const Function *F) {
   // Print out the return type and name...
   Out << "\n";
 
+  // Ensure that no local symbols conflict with global symbols.
+  const_cast<Function*>(F)->renameLocalSymbols();
+
   if (AnnotationWriter) AnnotationWriter->emitFunctionAnnot(F, Out);
 
   if (F->isExternal())