================
@@ -270,6 +274,35 @@ namespace clang {
};
}
+bool clang::MayDefAffectABI(const Decl *D) {
+ if (auto *FD = dyn_cast<FunctionDecl>(D)) {
+ if (FD->isInlined() || FD->isConstexpr())
+ return true;
+
+ // Non-user-provided functions get emitted as weak definitions with every
+ // use, no matter whether they've been explicitly instantiated etc.
+ if (!FD->isUserProvided())
+ return true;
+
+ if (FD->isDependentContext())
+ return true;
+
+ if (FD->getTemplateSpecializationKind() == TSK_ImplicitInstantiation)
+ return true;
+ }
+
+ if (auto *VD = dyn_cast<VarDecl>(D)) {
----------------
tbaederr wrote:
```suggestion
if (const auto *VD = dyn_cast<VarDecl>(D)) {
```
https://github.com/llvm/llvm-project/pull/71622
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits