You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(manifest): Profile's dependency_linkage becomes two plain members
Windows CI could not compile `tests/unit/test_modgraph.cpp`:
optional:262: error: no matching constructor for initialization of
'_SMF_control<_Optional_construct_base<basic_string<char,...>>, ...>'
reached through `Manifest` -> `std::map<std::string, Profile>` ->
`Profile::dependencyLinkage`, an `std::optional<std::string>` DATA MEMBER of an
exported struct. `TargetEntry::sysroot`'s comment in the same file already
forbids that shape and prescribes the remedy -- two plain members -- after the
same error on an earlier occasion. `Profile` was the last member in the module
still shaped that way.
Semantics are unchanged: not declared still means "whatever [build] said", which
is what the optional carried and what `dependencyLinkageDeclared` carries now.
WHICH EDIT IN THIS BRANCH TIPS IT IS NOT ESTABLISHED. Two diagnoses were
refuted: that the new emptiness predicate's being an inline member was the cause
(made it a free function; CI failed identically), and that the runner image had
changed (re-ran main's own Windows job unchanged on today's image; it passed).
`test_modgraph.cpp` copies a Manifest by value on main too, so the landmine was
already armed; this removes the type that cannot be copied rather than the
perturbation that reached it.
0 commit comments