Skip to content

Commit b9eb23e

Browse files
authored
Merge pull request #579 from elbeno/dangling-view-fail-test
✅ Add fail test for dangling message view
2 parents af15f97 + b8caa52 commit b9eb23e

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ add_compile_fail_test(msg/fail/owning_msg_incompatible_view.cpp LIBRARIES
125125
warnings cib)
126126
add_compile_fail_test(msg/fail/message_const_field_write.cpp LIBRARIES warnings
127127
cib)
128+
add_compile_fail_test(msg/fail/message_dangling_view.cpp LIBRARIES warnings cib)
128129
add_compile_fail_test(msg/fail/message_dup_fieldnames.cpp LIBRARIES warnings
129130
cib)
130131
add_compile_fail_test(msg/fail/message_incompatible_matcher.cpp LIBRARIES
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <msg/field.hpp>
2+
#include <msg/message.hpp>
3+
4+
// EXPECT: -Wdangling
5+
namespace {
6+
using namespace msg;
7+
8+
using f1 = field<"f1", std::uint32_t>::located<at{0_dw, 31_msb, 24_lsb}>;
9+
using f2 = field<"f2", std::uint32_t>::located<at{0_dw, 7_msb, 0_lsb}>;
10+
11+
using msg_defn = message<"test_msg", f1, f2>;
12+
} // namespace
13+
14+
auto main() -> int {
15+
#if defined(__clang__)
16+
[[maybe_unused]] auto v = msg::owning<msg_defn>{}.as_const_view();
17+
#else
18+
static_assert(false, "-Wdangling");
19+
#endif
20+
}

0 commit comments

Comments
 (0)