aboutsummaryrefslogtreecommitdiff
path: root/dep.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dep.cc')
-rw-r--r--dep.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/dep.cc b/dep.cc
index 75dff76..e9aa32b 100644
--- a/dep.cc
+++ b/dep.cc
@@ -162,12 +162,18 @@ struct RuleMerger {
if (primary_rule && !r->cmds.empty() &&
!IsSuffixRule(output) && !r->is_double_colon) {
- WARN_LOC(r->cmd_loc(),
- "warning: overriding commands for target `%s'",
- output.c_str());
- WARN_LOC(primary_rule->cmd_loc(),
- "warning: ignoring old commands for target `%s'",
- output.c_str());
+ if (g_flags.werror_overriding_commands) {
+ ERROR_LOC(r->cmd_loc(),
+ "*** overriding commands for target `%s', previously defined at %s:%d",
+ output.c_str(), LOCF(primary_rule->cmd_loc()));
+ } else {
+ WARN_LOC(r->cmd_loc(),
+ "warning: overriding commands for target `%s'",
+ output.c_str());
+ WARN_LOC(primary_rule->cmd_loc(),
+ "warning: ignoring old commands for target `%s'",
+ output.c_str());
+ }
primary_rule = r;
}
if (!primary_rule && !r->cmds.empty()) {