r208264 started asserting in `setLinkage()` and `setVisibility()` that
visibility and linkage are compatible. There are a few places in clang
where visibility is set first, and then linkage later, so the assert
fires. In `setLinkage()`, it's clear what the visibility *should* be,
so rather than updating all the call sites just automatically fix the
visibility.
The testcase for this is for *clang*, so it'll follow separately in cfe.
PR19760
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209227
91177308-0d34-0410-b5e6-
96231b3b80d8
bool hasCommonLinkage() const { return isCommonLinkage(Linkage); }
void setLinkage(LinkageTypes LT) {
- assert((!isLocalLinkage(LT) || hasDefaultVisibility()) &&
- "local linkage requires default visibility");
+ if (isLocalLinkage(LT))
+ Visibility = DefaultVisibility;
Linkage = LT;
}
LinkageTypes getLinkage() const { return Linkage; }