From f1b3c0e86daec1f5b7ed81a60edbe548fcbb5f42 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 5 Jan 2018 16:17:10 +0200 Subject: Work around bogus ubsan report --- build2/diagnostics.cxx | 2 +- build2/test/script/parser.cxx | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build2/diagnostics.cxx b/build2/diagnostics.cxx index b1f2796..f04751c 100644 --- a/build2/diagnostics.cxx +++ b/build2/diagnostics.cxx @@ -40,7 +40,7 @@ namespace build2 #else __thread #endif - const diag_frame* diag_frame::stack; + const diag_frame* diag_frame::stack = nullptr; // Diagnostic facility, project specifics. // diff --git a/build2/test/script/parser.cxx b/build2/test/script/parser.cxx index 19bcb5c..d1e2816 100644 --- a/build2/test/script/parser.cxx +++ b/build2/test/script/parser.cxx @@ -3016,6 +3016,7 @@ namespace build2 // If the scope was executed synchronously, check the status // and bail out if we weren't asked to keep going. // + const diag_frame* df (diag_frame::stack); // UBSan workaround. if (!sched.async (task_count, [] (scope& s, script& scr, @@ -3028,7 +3029,7 @@ namespace build2 ref (*chain), ref (*script_), ref (*runner_), - diag_frame::stack)) + df)) { // Bail out if the scope has failed and we weren't instructed // to keep going. -- cgit v1.1