Changes in directory llvm/tools/llvm-upgrade:
ParserInternals.h updated: 1.7 -> 1.8 UpgradeParser.y updated: 1.17 -> 1.18 --- Log message: For PR645: http://llvm.org/PR645 : Keep track of global constant and variable definitions for eventual use in resolving conflicts between global and local symbol usage. --- Diffs of the changes: (+19 -4) ParserInternals.h | 6 ++++++ UpgradeParser.y | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) Index: llvm/tools/llvm-upgrade/ParserInternals.h diff -u llvm/tools/llvm-upgrade/ParserInternals.h:1.7 llvm/tools/llvm-upgrade/ParserInternals.h:1.8 --- llvm/tools/llvm-upgrade/ParserInternals.h:1.7 Sat Dec 2 14:19:56 2006 +++ llvm/tools/llvm-upgrade/ParserInternals.h Tue Dec 5 13:18:29 2006 @@ -60,6 +60,12 @@ void destroy() const { delete newTy; } + TypeInfo clone() const { + TypeInfo result = *this; + result.newTy = new std::string(*newTy); + return result; + } + Types getElementType() const { return elemTy; } bool isSigned() const { Index: llvm/tools/llvm-upgrade/UpgradeParser.y diff -u llvm/tools/llvm-upgrade/UpgradeParser.y:1.17 llvm/tools/llvm-upgrade/UpgradeParser.y:1.18 --- llvm/tools/llvm-upgrade/UpgradeParser.y:1.17 Sun Dec 3 01:10:26 2006 +++ llvm/tools/llvm-upgrade/UpgradeParser.y Tue Dec 5 13:18:29 2006 @@ -39,6 +39,7 @@ static TypeVector EnumeratedTypes; typedef std::map<std::string,TypeInfo> TypeMap; static TypeMap NamedTypes; +static TypeMap Globals; void destroy(ValueList* VL) { while (!VL->empty()) { @@ -777,29 +778,37 @@ $$ = 0; } | ConstPool OptAssign OptLinkage GlobalType ConstVal GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.type.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.cnst << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign External GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign DLLIMPORT GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; } | ConstPool OptAssign EXTERN_WEAK GlobalType Types GlobalVarAttributes { - if (!$2->empty()) + if (!$2->empty()) { *O << *$2 << " = "; + Globals[*$2] = $5.clone(); + } *O << *$3 << " " << *$4 << " " << *$5.newTy << " " << *$6 << "\n"; delete $2; delete $3; delete $4; $5.destroy(); delete $6; $$ = 0; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits