mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2025-01-31 00:53:23 +00:00
* read.c (eval): [SV 47960] Skip record waiting files when ignoring.
* tests/scripts/features/conditionals: Test this scenario.
This commit is contained in:
parent
c73ed7dd1c
commit
e2ebea35f1
2 changed files with 19 additions and 3 deletions
6
read.c
6
read.c
|
@ -724,9 +724,6 @@ eval (struct ebuffer *ebuf, int set_default)
|
|||
struct variable *v;
|
||||
enum variable_origin origin = vmod.override_v ? o_override : o_file;
|
||||
|
||||
/* Variable assignment ends the previous rule. */
|
||||
record_waiting_files ();
|
||||
|
||||
/* If we're ignoring then we're done now. */
|
||||
if (ignoring)
|
||||
{
|
||||
|
@ -735,6 +732,9 @@ eval (struct ebuffer *ebuf, int set_default)
|
|||
continue;
|
||||
}
|
||||
|
||||
/* Variable assignment ends the previous rule. */
|
||||
record_waiting_files ();
|
||||
|
||||
if (vmod.undefine_v)
|
||||
{
|
||||
do_undefine (p, origin, ebuf);
|
||||
|
|
|
@ -141,6 +141,22 @@ all: ; @:',
|
|||
'',
|
||||
'success');
|
||||
|
||||
# SV 47960 : ensure variable assignments in non-taken legs don't cause problems
|
||||
run_make_test('
|
||||
ifneq ($(FOO),yes)
|
||||
target:
|
||||
else
|
||||
BAR = bar
|
||||
target:
|
||||
endif
|
||||
@echo one
|
||||
',
|
||||
'', "one\n");
|
||||
|
||||
|
||||
# This tells the test driver that the perl test script executed properly.
|
||||
1;
|
||||
|
||||
### Local Variables:
|
||||
### eval: (setq whitespace-action (delq 'auto-cleanup whitespace-action))
|
||||
### End:
|
||||
|
|
Loading…
Reference in a new issue