aboutsummaryrefslogtreecommitdiff
path: root/eval.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-10-27 10:02:15 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-10-27 10:02:15 +0900
commitd236eb03fbedb65db7b192c5771a6375aeba95ae (patch)
tree148f104990a0d9851244c62d8b17a7199cd65353 /eval.cc
parent4421dda489d793ea1a59b1acf460b540b3b4174b (diff)
[C++] Let ifdef allow trailing spaces in a variable name
https://github.com/google/kati/issues/33
Diffstat (limited to 'eval.cc')
-rw-r--r--eval.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/eval.cc b/eval.cc
index 25b9c52..2ba4a56 100644
--- a/eval.cc
+++ b/eval.cc
@@ -189,9 +189,9 @@ void Evaluator::EvalIf(const IfStmt* stmt) {
case CondOp::IFNDEF: {
string var_name;
stmt->lhs->Eval(this, &var_name);
- if (var_name.find_first_of(" \t") != string::npos)
+ Symbol lhs = Intern(TrimRightSpace(var_name));
+ if (lhs.str().find_first_of(" \t") != string::npos)
Error("*** invalid syntax in conditional.");
- Symbol lhs = Intern(var_name);
Var* v = LookupVarInCurrentScope(lhs);
const string&& s = v->Eval(this);
is_true = (s.empty() == (stmt->op == CondOp::IFNDEF));