aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-09-17 13:46:18 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-09-17 13:46:18 -0700
commit386d15af4765dd9b5954a408315e3d88298a493c (patch)
tree4e017806bf4ba74f7e2f02c02d93e1774f2e952f
parent685dd61a36bf15778490632274a7bdf21c15c194 (diff)
parentb659248e4a3b44fb88011a3d4341ef5898270358 (diff)
downloadplatform_build_kati-386d15af4765dd9b5954a408315e3d88298a493c.tar.gz
platform_build_kati-386d15af4765dd9b5954a408315e3d88298a493c.tar.bz2
platform_build_kati-386d15af4765dd9b5954a408315e3d88298a493c.zip
Merge branch 'aosp/upstream' into master
am: b659248e4a Change-Id: Id46a3e63e34764e6fab114a4d0982dac2395a772
-rw-r--r--eval.cc1
-rw-r--r--func.cc7
-rw-r--r--testcase/deprecated_var.mk36
3 files changed, 30 insertions, 14 deletions
diff --git a/eval.cc b/eval.cc
index 1370fb1..8a71d22 100644
--- a/eval.cc
+++ b/eval.cc
@@ -373,6 +373,7 @@ void Evaluator::EvalIf(const IfStmt* stmt) {
if (lhs.str().find_first_of(" \t") != string::npos)
Error("*** invalid syntax in conditional.");
Var* v = LookupVarInCurrentScope(lhs);
+ v->Used(this, lhs);
is_true = (v->String().empty() == (stmt->op == CondOp::IFNDEF));
break;
}
diff --git a/func.cc b/func.cc
index 15b202d..bc3e57f 100644
--- a/func.cc
+++ b/func.cc
@@ -599,11 +599,12 @@ void CallFunc(const vector<Value*>& args, Evaluator* ev, string* s) {
ev->CheckStack();
const string&& func_name_buf = args[0]->Eval(ev);
- const StringPiece func_name = TrimSpace(func_name_buf);
- Var* func = ev->LookupVar(Intern(func_name));
+ Symbol func_sym = Intern(TrimSpace(func_name_buf));
+ Var* func = ev->LookupVar(func_sym);
+ func->Used(ev, func_sym);
if (!func->IsDefined()) {
KATI_WARN_LOC(ev->loc(), "*warning*: undefined user function: %s",
- func_name.as_string().c_str());
+ func_sym.c_str());
}
vector<unique_ptr<SimpleVar>> av;
for (size_t i = 1; i < args.size(); i++) {
diff --git a/testcase/deprecated_var.mk b/testcase/deprecated_var.mk
index 2cacbda..e0be521 100644
--- a/testcase/deprecated_var.mk
+++ b/testcase/deprecated_var.mk
@@ -4,14 +4,14 @@
A := test
$(KATI_deprecated_var A B C D)
-# Writing to an undefined deprecated variable
+$(info Writing to an undefined deprecated variable)
B := test
ifndef KATI
$(info Makefile:8: B has been deprecated.)
endif
-# Reading from deprecated variables (set before/after/never the deprecation func)
-# Writing to an undefined deprecated variable
+$(info Reading from deprecated variables - set before/after/never the deprecation func)
+$(info Writing to an undefined deprecated variable)
D := $(A)$(B)$(C)
ifndef KATI
$(info Makefile:15: A has been deprecated.)
@@ -20,27 +20,27 @@ $(info Makefile:15: C has been deprecated.)
$(info Makefile:15: D has been deprecated.)
endif
-# Writing to a reset deprecated variable
+$(info Writing to a reset deprecated variable)
D += test
ifndef KATI
$(info Makefile:24: D has been deprecated.)
endif
-# Using a custom message
+$(info Using a custom message)
$(KATI_deprecated_var E,Use X instead)
E = $(C)
ifndef KATI
$(info Makefile:31: E has been deprecated. Use X instead.)
endif
-# Expanding a recursive variable with an embedded deprecated variable
+$(info Expanding a recursive variable with an embedded deprecated variable)
$(E)
ifndef KATI
$(info Makefile:37: E has been deprecated. Use X instead.)
$(info Makefile:37: C has been deprecated.)
endif
-# All of the previous variable references have been basic SymRefs, now check VarRefs
+$(info All of the previous variable references have been basic SymRefs, now check VarRefs)
F = E
G := $($(F))
ifndef KATI
@@ -48,13 +48,13 @@ $(info Makefile:45: E has been deprecated. Use X instead.)
$(info Makefile:45: C has been deprecated.)
endif
-# And check VarSubst
+$(info And check VarSubst)
G := $(C:%.o=%.c)
ifndef KATI
$(info Makefile:52: C has been deprecated.)
endif
-# Deprecated variable used in a rule-specific variable
+$(info Deprecated variable used in a rule-specific variable)
test: A := $(E)
ifndef KATI
$(info Makefile:58: E has been deprecated. Use X instead.)
@@ -62,9 +62,23 @@ $(info Makefile:58: C has been deprecated.)
# A hides the global A variable, so is not considered deprecated.
endif
-# Deprecated variable used in a rule
+$(info Deprecated variable used as a macro)
+A := $(call B)
+ifndef KATI
+$(info Makefile:66: B has been deprecated.)
+$(info Makefile:66: A has been deprecated.)
+endif
+
+$(info Deprecated variable used in an ifdef)
+ifdef C
+endif
+ifndef KATI
+$(info Makefile:73: C has been deprecated.)
+endif
+
+$(info Deprecated variable used in a rule)
test:
echo $(C)Done
ifndef KATI
-$(info Makefile:67: C has been deprecated.)
+$(info Makefile:81: C has been deprecated.)
endif