Crafter.Build/tests/CompilerWarning/fixture/lib/Widget.cppm
catbot 67d31689bc test: a warning on any compile path must not fail the build
The fixture puts a #warning in each kind of source the build compiles —
module interface, module implementation, C, consumer — plus an unknown -z
value so ld.lld warns on the link step too, and asserts the build succeeds
cold (every unit compiling, every warning emitted), succeeds with nothing to
do, and succeeds again after each source is touched back into staleness.
The staged copy lives outside the repo because the whole test depends on
units compiling for the first time.

The last pass breaks a source on purpose: "never fails" would satisfy
everything above just as well, so the error path is asserted too — both that
it fails and that it still reports the compiler's diagnostic.
2026-08-26 00:51:22 +00:00

13 lines
452 B
C++

// SPDX-License-Identifier: LGPL-3.0-only
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
module;
// Every source in this fixture carries a #warning: -W#warnings is on by
// default, so each unit produces diagnostics on stderr and still exits 0.
// That is the whole point — the build has to read the exit status, not the
// chatter.
#warning "interface unit is noisy"
export module Widget;
import std;
export std::int32_t WidgetValue();