aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Builtins.cpp
diff options
context:
space:
mode:
authorVolodymyr Sapsai <vsapsai@apple.com>2022-12-13 21:25:47 -0800
committerVolodymyr Sapsai <vsapsai@apple.com>2023-01-20 10:18:18 -0600
commited7a46a8de77087447936965044e2faf734102e5 (patch)
tree51052475a270609cd1c1e25277cb0d103c60afa9 /clang/lib/Basic/Builtins.cpp
parent6ba4afb4d6f2f8f293ad704a37de4139c5c8c0f0 (diff)
downloadllvm-ed7a46a8de77087447936965044e2faf734102e5.zip
llvm-ed7a46a8de77087447936965044e2faf734102e5.tar.gz
llvm-ed7a46a8de77087447936965044e2faf734102e5.tar.bz2
[modules] Allow parsing a duplicate Obj-C interface if a previous one comes from a hidden [sub]module.
Instead of emitting a redefinition error, check that definitions are equivalent and allow such scenario. A few non-obvious implementation details: * to avoid multiple definitions in the redeclaration chain we just drop the new definition after checking for equivalence; * for checking definition equivalence use ODR hash instead of ASTStructuralEquivalence because it avoids excessive recursive deserialization. Though after detecting a mismatch we do deserialize multiple entities to provide a better error message. rdar://82908223 Differential Revision: https://reviews.llvm.org/D124286
Diffstat (limited to 'clang/lib/Basic/Builtins.cpp')
0 files changed, 0 insertions, 0 deletions