iains added inline comments.
================ Comment at: clang/test/Modules/module-file-info-cxx20.cpp:26 + +#if TU == 1 + ---------------- urnathan wrote: > urnathan wrote: > > ChuanqiXu wrote: > > > iains wrote: > > > > ChuanqiXu wrote: > > > > > According to [[ > > > > > http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1857r3.html > > > > > | P1857R3 ]], it might not be good to add macro declarative before > > > > > module declaration. Although clang didn't implement it and there are > > > > > old test case uses this style, I think it might be better to split > > > > > into files. @urnathan how do you think about this? > > > > I see this in the Tony tables, but OTOH I cannot exactly see where the > > > > wording forbids it - in fact it permits preprocesssor directives before > > > > the import (including in the example in 5.7)... perhaps I'm misreading. > > > > > > > > This way of writing the test cases does make them much easier to manage > > > > (and for a reader to see the intent) - of course, if we should split > > > > into files - then that is what we should do. > > > > > > > I think the grammar in [[ http://eel.is/c++draft/cpp | [cpp.pre] ]] > > > forbid it. > > > > > > First, the file could only be: > > > ``` > > > preprocessing-file: > > > group_opt > > > module-file > > > ``` > > > > > > Then it is clear that we couldn't put macro declarative before module > > > declaration. I agree the current style is easier and more convenient. In > > > fact, I prefer it too. But I think we would better follow it since it is > > > standard. Otherwise, it would be more work in later maintenance stage. > > ChuanqiXu is correct about preprocessor directives not being allowed before > > the initial module decl, but I don;t think compilers implement that. There > > are a couple of issues. > > > > a) some users have a need to have #pragma charset-or-similar before any > > tokens > > b) forced headers > > > > I do find the #if use here somewhat confusing. A bunch of > > cxx20-file-info-[1-n].cpp might be more straightforwards? (It does seem > > that directory is using cxx20 as a prefix rather than suffix btw.) > or maybe splitting this up make it harder to understand the tests as a whole. > I don;t think it terribly importand. If we do ban pre-module directives, we > can always split it then, OK ( actually, I find it easier to grok the test case intent if the various required inputs are built in order, in the single file - but that's the nature of preferences :) ) I suppose that (a) and (b) mean that we cannot reasonably diagnose this? Probably some of the files (e.g. ones making dummy modules to be consumed by the actual tests) could be in 'Inputs'. Will rework this accordingly. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119823/new/ https://reviews.llvm.org/D119823 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits