aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Becker <stefanb@gpartner-nvidia.com>2016-06-02 20:01:18 +0300
committerStefan Becker <stefanb@gpartner-nvidia.com>2016-06-02 20:01:18 +0300
commit9f4c646bac8c1c6a7eac9dad58aa7db9fb96da71 (patch)
tree6d36fd488360c64a27ab3ad98464e092ec637d8d
parent390115c9f284c66aeda94d36e01533f7b668627d (diff)
[C++] $(eval) stops when first character is '#'
Regression when compared to GNU make behaviour. Test case: $ cat ../Makefile.comment-in-macro .PHONY: all define _rule # comment all: : endef $(eval $(_rule)) $ make -f Makefile.comment-in-macro : $ ckati --ninja --ninja_dir . --gen_all_targets -f Makefile.comment-in-macro *** No targets. Fixes https://github.com/google/kati/issues/74
-rw-r--r--func.cc4
-rw-r--r--testcase/eval_starts_with_comment.mk9
2 files changed, 9 insertions, 4 deletions
diff --git a/func.cc b/func.cc
index a7d1c8c..ab584c9 100644
--- a/func.cc
+++ b/func.cc
@@ -458,10 +458,6 @@ void EvalFunc(const vector<Value*>& args, Evaluator* ev, string*) {
//const string text = args[0]->Eval(ev);
string* text = new string;
args[0]->Eval(ev, text);
- if ((*text)[0] == '#') {
- delete text;
- return;
- }
if (ev->avoid_io()) {
KATI_WARN("%s:%d: *warning*: $(eval) in a recipe is not recommended: %s",
LOCF(ev->loc()), text->c_str());
diff --git a/testcase/eval_starts_with_comment.mk b/testcase/eval_starts_with_comment.mk
new file mode 100644
index 0000000..c3adca4
--- /dev/null
+++ b/testcase/eval_starts_with_comment.mk
@@ -0,0 +1,9 @@
+.PHONY: test
+
+define _rule
+# comment
+test:
+ echo PASS
+endef
+
+$(eval $(_rule))