AaronBallman wrote:

> I think that movement of [macro.names]/2 to the core language wording 
> should've been a DR and we should treat it as such, but this is up for 
> discussion. Attributes situation is also concerning.
> 
> CC @AaronBallman as attributes maintainer.

This change will break code:

https://sourcegraph.com/search?q=context:global+lang:C%2B%2B+%28%23define+assume%5Cb%29+-file:.*test.*+-file:.*clang.*&patternType=regexp&case=yes&sm=0

This search even shows how particularly bad the overreach is:
https://sourcegraph.com/search?q=context:global+lang:C%2B%2B+%28%23define+fallthrough%5Cb%29+-file:.*test.*+-file:.*clang.*&patternType=regexp&case=yes&sm=0
the first result shows `#define fallthrough()` as a macro; that's now invalid 
even though it cannot actually conflict with any standard usage of the 
attribute because it's a function-like macro.

I'm not super inclined to treat this as a DR in older language modes as it 
feels user hostile in some of these cases (the `fallthrough()` case is 
particularly difficult to justify). But if we're only exposing this as a 
warning, we could expose it under its own flag so users can disable it if they 
need to.

https://github.com/llvm/llvm-project/pull/189309
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to