aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbuild2/cc/compile-rule.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/libbuild2/cc/compile-rule.cxx b/libbuild2/cc/compile-rule.cxx
index b0fc40c..3b79b39 100644
--- a/libbuild2/cc/compile-rule.cxx
+++ b/libbuild2/cc/compile-rule.cxx
@@ -900,7 +900,18 @@ namespace build2
//
{
const path& p (src.path ());
- assert (!p.empty ()); // Sanity check.
+
+ // We seem to have a race condition here but can't quite put our
+ // finger on it.
+ //
+ // assert (!p.empty ()); // Sanity check.
+ if (p.empty ())
+ {
+ info << "unassigned path for target " << src <<
+ info << "target state: " << src.matched_state (a, false) <<
+ info << "is empty_path: " << (&p == &empty_path);
+ assert (false);
+ }
if (dd.expect (p) != nullptr)
l4 ([&]{trace << "source file mismatch forcing update of " << t;});