diff options
Diffstat (limited to 'lib/Analysis/RValues.cpp')
-rw-r--r-- | lib/Analysis/RValues.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Analysis/RValues.cpp b/lib/Analysis/RValues.cpp index 86f5ac96fd..5e161f34a5 100644 --- a/lib/Analysis/RValues.cpp +++ b/lib/Analysis/RValues.cpp @@ -240,6 +240,10 @@ RVal RVal::GetSymbolValue(SymbolManager& SymMgr, VarDecl* D) { LVal LVal::MakeVal(AddrLabelExpr* E) { return lval::GotoLabel(E->getLabel()); } +LVal LVal::MakeVal(StringLiteral* S) { + return lval::StringLiteralVal(S); +} + //===----------------------------------------------------------------------===// // Utility methods for constructing RVals (both NonLVals and LVals). //===----------------------------------------------------------------------===// @@ -392,6 +396,12 @@ void LVal::print(std::ostream& Out) const { << cast<lval::FuncVal>(this)->getDecl()->getIdentifier()->getName(); break; + case lval::StringLiteralValKind: + Out << "literal \"" + << cast<lval::StringLiteralVal>(this)->getLiteral()->getStrData() + << "\""; + break; + default: assert (false && "Pretty-printing not implemented for this LVal."); break; |