Index: llvm/trunk/lib/Transforms/Utils/NameAnonFunctions.cpp =================================================================== --- llvm/trunk/lib/Transforms/Utils/NameAnonFunctions.cpp +++ llvm/trunk/lib/Transforms/Utils/NameAnonFunctions.cpp @@ -67,12 +67,17 @@ bool Changed = false; ModuleHasher ModuleHash(M); int count = 0; - for (auto &F : M) { - if (F.hasName()) - continue; - F.setName(Twine("anon.") + ModuleHash.get() + "." + Twine(count++)); + auto RenameIfNeed = [&] (GlobalValue &GV) { + if (GV.hasName()) + return; + GV.setName(Twine("anon.") + ModuleHash.get() + "." + Twine(count++)); Changed = true; - } + }; + for (auto &GO : M.global_objects()) + RenameIfNeed(GO); + for (auto &GA : M.aliases()) + RenameIfNeed(GA); + return Changed; } Index: llvm/trunk/test/Transforms/NameAnonFunctions/rename.ll =================================================================== --- llvm/trunk/test/Transforms/NameAnonFunctions/rename.ll +++ llvm/trunk/test/Transforms/NameAnonFunctions/rename.ll @@ -11,6 +11,8 @@ ret void } +; CHECK: @anon.acbd18db4cc2f85cedef654fccc4a4d8.3 = global i8 0 +; CHECK: @anon.acbd18db4cc2f85cedef654fccc4a4d8.4 = alias i8, i8* @anon.acbd18db4cc2f85cedef654fccc4a4d8.3 ; CHECK: define void @anon.acbd18db4cc2f85cedef654fccc4a4d8.0() ; CHECK: define void @anon.acbd18db4cc2f85cedef654fccc4a4d8.1() ; CHECK: define void @anon.acbd18db4cc2f85cedef654fccc4a4d8.2() @@ -25,3 +27,7 @@ ret void } + +@3 = global i8 0 + +@4 = alias i8, i8 *@3