[PATCH] D136953: [C++20] Diagnose invalid and reserved module names

Corentin Jabot via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 28 08:23:42 PDT 2022


cor3ntin added inline comments.


================
Comment at: clang/lib/Sema/SemaModule.cpp:257
+    else if (PartName.startswith("std") &&
+             (PartName.size() == 3 || isDigit(PartName.drop_front(3)[0])))
+      Reason = /*reserved*/ 1;
----------------
erichkeane wrote:
> aaron.ballman wrote:
> > cor3ntin wrote:
> > > 
> > lol but my way is so much more complicated, so it must be more right... ;-)
> Is this logic right?  By my reading of the standard, 
> 
> `export module stdFoo.bar` << fine
> `export module std00Foo.bar` << fine
> 
> as neither  'consist of std followed by zero or more digits'.
> 
> This patch looks like it'll only allow the 1st, but not the 2nd.  
I've been wondering the same, I think the standard is a bit confusing in that regard.
`std00Foo` is "std followed by 0 or more digit".



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136953/new/

https://reviews.llvm.org/D136953



More information about the cfe-commits mailing list