For PR1336:
authorReid Spencer <rspencer@reidspencer.com>
Mon, 16 Apr 2007 02:56:33 +0000 (02:56 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 16 Apr 2007 02:56:33 +0000 (02:56 +0000)
When upgrading global vars, look for conflicts with functions as well. This
fixes test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll

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

tools/llvm-upgrade/UpgradeParser.y

index 697c7af2f884a261b5bead752d008c2c6b00ecd2..84f4eb547fd2b41e6119e98b32d619256b54b1c4 100644 (file)
@@ -934,8 +934,9 @@ ParseGlobalVariable(char *NameStr,GlobalValue::LinkageTypes Linkage,
   // of this global in the module and emit warnings if there are conflicts.
   if (!Name.empty()) {
     // The global has a name. See if there's an existing one of the same name.
-    if (CurModule.CurrentModule->getNamedGlobal(Name)) {
-      // We found an existing global ov the same name. This isn't allowed 
+    if (CurModule.CurrentModule->getNamedGlobal(Name) ||
+        CurModule.CurrentModule->getFunction(Name)) {
+      // We found an existing global of the same name. This isn't allowed 
       // in LLVM 2.0. Consequently, we must alter the name of the global so it
       // can at least compile. This can happen because of type planes 
       // There is alread a global of the same name which means there is a
@@ -2999,7 +3000,7 @@ FunctionHeaderH
               AI->setName("");
         }
       } else if (Conflict) {
-        // We have two globals with the same name and  different types. 
+        // We have two globals with the same name and different types. 
         // Previously, this was permitted because the symbol table had 
         // "type planes" and names only needed to be distinct within a 
         // type plane. After PR411 was fixed, this is no loner the case.