// Set visibility for definitions.
NamedDecl::LinkageInfo LV = D->getLinkageAndVisibility();
- GV->setVisibility(GetLLVMVisibility(LV.visibility()));
+ if (LV.visibilityExplicit() || !GV->hasAvailableExternallyLinkage())
+ GV->setVisibility(GetLLVMVisibility(LV.visibility()));
}
/// Set the symbol visibility of type information (vtable and RTTI)
xi.g();
// CHECK: declare void @_ZN1XIcE1fEv
xc.f();
- // CHECK: define available_externally hidden void @_ZN1XIcE1gEv
+ // CHECK: define available_externally void @_ZN1XIcE1gEv
xc.g();
}