Fixed Savannah bug #12202.
authorBoris Kolpackov <boris@kolpackov.net>
Fri, 4 Mar 2005 14:31:09 +0000 (14:31 +0000)
committerBoris Kolpackov <boris@kolpackov.net>
Fri, 4 Mar 2005 14:31:09 +0000 (14:31 +0000)
ChangeLog
implicit.c
tests/ChangeLog
tests/scripts/features/patternrules

index 9897a2c2fac596f917f69bd3dde15cba3713e02c..8d7dcbbbb9924dad4f93b67aa911b1b02f8d02c2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-04  Boris Kolpackov  <boris@kolpackov.net>
+
+       * imlicit.c (pattern_search): Mark files for which an implicit
+       rule has been found as targets. Fixes Savannah bug #12202.
+
 2005-03-04  Paul D. Smith  <psmith@gnu.org>
 
        * AUTHORS: Update.
index acf7c944aafb1d42443763f5b0c845556c17db98..ab3879b4e09dfac7251041b8ee9b0d10d6a05fe3 100644 (file)
@@ -803,6 +803,7 @@ pattern_search (struct file *file, int archive,
          f->cmds = imf->cmds;
          f->stem = imf->stem;
           f->also_make = imf->also_make;
+          f->is_target = 1;
          imf = lookup_file (d->intermediate_pattern);
          if (imf != 0 && imf->precious)
            f->precious = 1;
@@ -881,6 +882,7 @@ pattern_search (struct file *file, int archive,
     }
 
   file->cmds = rule->cmds;
+  file->is_target = 1;
 
   /* If this rule builds other targets, too, put the others into FILE's
      `also_make' member.  */
index cffcb2d2f33c25e40bfd48e065063f7f436f7af6..ce8f460c18dee375281b56510c61b9744574df39 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-04  Boris Kolpackov  <boris@kolpackov.net>
+
+       * features/patternrules: Add a test fo Savannah bug #12202.
+
 2005-03-03  Boris Kolpackov  <boris@kolpackov.net>
 
        * scripts/features/se_implicit: Add a test for stem
index 926695a28807929b3e1f77d62dc2050ae3359d6f..3202a672c94c419d1b937b2cecd32897b55cd09f 100644 (file)
@@ -4,8 +4,10 @@ $description = "Test pattern rules.";
 
 $details = "";
 
-#  Make sure that multiple patterns where the same target can be built are
-#  searched even if the first one fails to match properly.
+#  TEST #1: Make sure that multiple patterns where the same target
+#           can be built are searched even if the first one fails
+#           to match properly.
+#
 
 run_make_test('
 .PHONY: all
@@ -33,7 +35,32 @@ a: void
        @true
 
 3.implicit-phony:
-', '', '');
+',
+'',
+'');
+
+# TEST #2: make sure files that are built via implicit rules are marked
+#          as targets (Savannah bug #12202).
+#
+run_make_test('
+TARGETS := foo foo.out
+
+.PHONY: all foo.in
+
+all: $(TARGETS)
+
+%: %.in
+       @echo $@
+
+%.out: %
+       @echo $@
+
+foo.in: ; @:
+
+',
+'',
+'foo
+foo.out');
 
 
 # This tells the test driver that the perl test script executed properly.