1. Canonicalize declaration pointers when forming APValues. (details)
Commit 9dcd96f728863d40d6f5922ed52732fdd728fb5f by richard
Canonicalize declaration pointers when forming APValues.

References to different declarations of the same entity aren't different
values, so shouldn't have different representations.

Recommit of e6393ee813178e9d3306b8e3c6949a4f32f8a2cb with fixed handling
for weak declarations. We now look for attributes on the most recent
declaration when determining whether a declaration is weak. (Second
recommit with further fixes for mishandling of weak declarations. Our
behavior here is fundamentally unsound -- see PR47663 -- but this
approach attempts to not make things worse.)
The file was modifiedclang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p9.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/weak-external.cpp (diff)
The file was modifiedclang/lib/AST/Decl.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGExprConstant.cpp (diff)
The file was modifiedclang/include/clang/AST/APValue.h (diff)
The file was modifiedclang/test/OpenMP/ordered_messages.cpp (diff)
The file was modifiedclang/lib/AST/APValue.cpp (diff)
The file was modifiedclang/lib/AST/DeclBase.cpp (diff)
The file was modifiedclang/lib/AST/ExprConstant.cpp (diff)