+ } else if (Symbol.isVariable()) {
+ const MCExpr *Value = Symbol.getVariableValue();
+ assert (Value->getKind() == MCExpr::SymbolRef && "Unimplemented");
+ const MCSymbolRefExpr *Ref = static_cast<const MCSymbolRefExpr*>(Value);
+ const MCSymbol &RefSymbol = Ref->getSymbol();
+ if (RefSymbol.isDefined()) {
+ MSD.SectionIndex = SectionIndexMap.lookup(&RefSymbol.getSection());
+ assert(MSD.SectionIndex && "Invalid section index!");
+ ExternalSymbolData.push_back(MSD);
+ }