
namespace to not merge properly. We have an invariant here: after a declaration reads its canonical declaration, it can assume the canonical declaration is fully merged. This invariant can be violated if deserializing some declaration triggers the deserialization of a later declaration, because that later declaration can in turn deserialize a redeclaration of that first declaration before it is fully merged. The anonymous namespace for a namespace gets stored with the first declaration of that namespace, which may be before its parent namespace, so defer loading it until after we've finished merging the surrounding namespace. llvm-svn: 232455
4 lines
157 B
Plaintext
4 lines
157 B
Plaintext
module a { header "a.h" export * }
|
|
module b { module b1 { header "b1.h" export * } module b2 { header "b2.h" export * } }
|
|
module c { header "c.h" export * }
|