diff options
Diffstat (limited to 'build2/cli/target.cxx')
-rw-r--r-- | build2/cli/target.cxx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/build2/cli/target.cxx b/build2/cli/target.cxx index 48dc95b..200f6f0 100644 --- a/build2/cli/target.cxx +++ b/build2/cli/target.cxx @@ -32,10 +32,15 @@ namespace build2 // cli.cxx // group_view cli_cxx:: - group_members (action_type) const + group_members (action_type) { + static_assert (offsetof (cli_cxx_members, i) - + offsetof (cli_cxx_members, h) == sizeof (target*) * 2, + "member layout incompatible with array"); + return h != nullptr - ? group_view {m, (i != nullptr ? 3U : 2U)} + ? group_view {reinterpret_cast<target* const*> (&h), + (i != nullptr ? 3U : 2U)} : group_view {nullptr, 0}; } |