aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/compile.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-12-08 15:47:08 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-12-08 15:47:08 +0200
commitdd078eec87eb89a9a21c22b1a18f982d04adb3c9 (patch)
treeba8a822b4e4be0de1b5dee31f22f4d6e034600dd /build2/cc/compile.cxx
parent1702d75cb90c3a9f630cb884ccf158dd5a7eecf8 (diff)
Improve inconsistent C++ compiler diagnostics
Diffstat (limited to 'build2/cc/compile.cxx')
-rw-r--r--build2/cc/compile.cxx18
1 files changed, 16 insertions, 2 deletions
diff --git a/build2/cc/compile.cxx b/build2/cc/compile.cxx
index a81f147..bb0ad37 100644
--- a/build2/cc/compile.cxx
+++ b/build2/cc/compile.cxx
@@ -2698,8 +2698,22 @@ namespace build2
// our progress.
//
if (force_gen_skip && *force_gen_skip == skip_count)
- fail << "inconsistent " << x_lang << " compiler behavior" <<
- info << "perhaps you are running out of disk space";
+ {
+ diag_record dr (fail);
+
+ dr << "inconsistent " << x_lang << " compiler behavior";
+
+ // Show the yo-yo'ing command lines.
+ //
+ dr << info;
+ print_process (dr, args.data ()); // No pipes.
+
+ init_args ((gen = true));
+ dr << info << "";
+ print_process (dr, args.data ()); // No pipes.
+
+ dr << info << "perhaps you are running out of disk space?";
+ }
restart = true;
force_gen = true;