[PATCH] D140261: [C++20][Modules] Do not allow non-inline external definitions in header units.

Iain Sandoe via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 19 22:23:56 PST 2022


iains marked an inline comment as done.
iains added a comment.

In D140261#4006653 <https://reviews.llvm.org/D140261#4006653>, @ChuanqiXu wrote:

> In D140261#4004542 <https://reviews.llvm.org/D140261#4004542>, @iains wrote:
>
>> OK so this is what I plan to land assuming testing goes OK.
>> I suspect that this might cause some user code to flag errors - there are quite a number of ODR violations "in the wild".
>
> I forgot we need to mention such changes in https://clang.llvm.org/docs/ReleaseNotes.html#potentially-breaking-changes.

It will not break any existing compilation (we accept headers with non-inline external definitions as textual includes, that has not changed).   What I mean is that such headers will not be accepted as Header Units - and I am sure some users will consider that to be a bug (even though the problem is that the header is not ODR safe).
So it's not a change that breaks existing code - because no-one has Header Units in existing code.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D140261



More information about the cfe-commits mailing list