Re: Submodule semantics with macro guard

2016-09-19 Thread Richard Smith via cfe-commits
On 19 Sep 2016 6:53 pm, "Manman via cfe-commits" wrote: On Sep 19, 2016, at 5:55 PM, Richard Smith via cfe-commits < cfe-commits@lists.llvm.org> wrote: Your c.h is not correct. It would introduce a definition of c in every file where it's included, so it's not a

Re: Submodule semantics with macro guard

2016-09-19 Thread Manman via cfe-commits
> On Sep 19, 2016, at 5:55 PM, Richard Smith via cfe-commits > wrote: > > Your c.h is not correct. It would introduce a definition of c in every file > where it's included, so it's not a modular header. Hi Richard, What do you mean by c.h is not correct? It is

Re: Submodule semantics with macro guard

2016-09-19 Thread Richard Smith via cfe-commits
Your c.h is not correct. It would introduce a definition of c in every file where it's included, so it's not a modular header. On 19 Sep 2016 5:21 pm, "Manman via cfe-commits" wrote: > > Hi Richard & Ben, > > Given a simple testing case, where we have two submodules

Submodule semantics with macro guard

2016-09-19 Thread Manman via cfe-commits
Hi Richard & Ben, Given a simple testing case, where we have two submodules X.A (A.h) and X.B (B.h, it includes C.h, and C.h is guarded with a macro), when we import X.A and then textually include a header C.h, we get redefinition error. This is because the macro guard is owned by module X.B