diff options
| author | Stefan Becker <stefanb@gpartner-nvidia.com> | 2016-06-02 20:01:18 +0300 |
|---|---|---|
| committer | Stefan Becker <stefanb@gpartner-nvidia.com> | 2016-06-02 20:01:18 +0300 |
| commit | 9f4c646bac8c1c6a7eac9dad58aa7db9fb96da71 (patch) | |
| tree | 6d36fd488360c64a27ab3ad98464e092ec637d8d | |
| parent | 390115c9f284c66aeda94d36e01533f7b668627d (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.cc | 4 | ||||
| -rw-r--r-- | testcase/eval_starts_with_comment.mk | 9 |
2 files changed, 9 insertions, 4 deletions
@@ -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)) |
