-
Type:
Bug
-
Resolution: Works as Designed
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Server Programmability
-
ALL
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Compiling this snippet
namespace {
struct s1 {
bool someBool() const {
return true;
}
};
struct s2 {
bool getSomeBool() const {
return true;
}
};
void testBools(const auto& s) {
static_assert(
requires { s.someBool; } || requires { s.getSomeBool; },
"Argument to testBools must support either someBool() or getSomeBool().");
}
void runTest() {
testBools(s1{});
testBools(s2{});
}
} // namespace
with bazel build --config=opt install-dist-test (I stuck it inside a header file, but it shouldn't matter), this results in
ERROR: /home/ubuntu/SPM-4041/mongo/src/mongo/db/query/timeseries/BUILD.bazel:12:17: Compiling src/mongo/db/query/timeseries/timeseries_rewrites.cpp failed: (Exit 1): g++ failed: error executing CppCompile command (from target //src/mongo/db/query/timeseries:timeseries_rewrites_with_debug) external/mongo_toolchain_v4/v4/bin/g++ -U_FORTIFY_SOURCE '-std=c++20' -nostdinc++ ... (remaining 333 arguments skipped)
Execution result: https://sodalite.cluster.engflow.com/actions/executions/ChCgHfMQ0UNCiqLjEC0JFA-PEgdkZWZhdWx0GiUKIJKvNabKZSDCiOkYJh1a0cvfMz42pvOrDjWXcF4YgvBKEM4C
In file included from src/mongo/db/query/timeseries/timeseries_rewrites.cpp:30:
src/mongo/db/query/timeseries/timeseries_rewrites.h: In instantiation of 'void mongo::{anonymous}::testBools(const auto:147&) [with auto:147 = mongo::{anonymous}::s1]':
src/mongo/db/query/timeseries/timeseries_rewrites.h:62:14: required from here
src/mongo/db/query/timeseries/timeseries_rewrites.h:57:34: error: static assertion failed: Argument to testBools must support either someBool() or getSomeBool().
57 | requires { s.someBool; } || requires { s.getSomeBool; },
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/mongo/db/query/timeseries/timeseries_rewrites.h:57:34: note: '(false || false)' evaluates to false
src/mongo/db/query/timeseries/timeseries_rewrites.h: In instantiation of 'void mongo::{anonymous}::testBools(const auto:147&) [with auto:147 = mongo::{anonymous}::s2]':
src/mongo/db/query/timeseries/timeseries_rewrites.h:63:14: required from here
src/mongo/db/query/timeseries/timeseries_rewrites.h:57:34: error: static assertion failed: Argument to testBools must support either someBool() or getSomeBool().
src/mongo/db/query/timeseries/timeseries_rewrites.h:57:34: note: '(false || false)' evaluates to false
cc1plus: note: unrecognized command-line option '-Wno-interference-size' may have been intended to silence earlier diagnostics
Target //:install-dist-test failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 81.170s, Critical Path: 35.68s
INFO: 4 processes: 4 internal.
ERROR: Build did NOT complete successfully
whereas it succeeds with bazel build install-dist-test.