diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f1dfdf34..e041e379 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -125,6 +125,7 @@ add_compile_fail_test(msg/fail/owning_msg_incompatible_view.cpp LIBRARIES warnings cib) add_compile_fail_test(msg/fail/message_const_field_write.cpp LIBRARIES warnings cib) +add_compile_fail_test(msg/fail/message_dangling_view.cpp LIBRARIES warnings cib) add_compile_fail_test(msg/fail/message_dup_fieldnames.cpp LIBRARIES warnings cib) add_compile_fail_test(msg/fail/message_incompatible_matcher.cpp LIBRARIES diff --git a/test/msg/fail/message_dangling_view.cpp b/test/msg/fail/message_dangling_view.cpp new file mode 100644 index 00000000..5350a163 --- /dev/null +++ b/test/msg/fail/message_dangling_view.cpp @@ -0,0 +1,20 @@ +#include +#include + +// EXPECT: -Wdangling +namespace { +using namespace msg; + +using f1 = field<"f1", std::uint32_t>::located; +using f2 = field<"f2", std::uint32_t>::located; + +using msg_defn = message<"test_msg", f1, f2>; +} // namespace + +auto main() -> int { +#if defined(__clang__) + [[maybe_unused]] auto v = msg::owning{}.as_const_view(); +#else + static_assert(false, "-Wdangling"); +#endif +}