break;
case TSK_ExplicitInstantiationDeclaration:
- Linkage = llvm::GlobalVariable::AvailableExternallyLinkage;
+ // FIXME: Use available_externally linkage. However, this currently
+ // breaks LLVM's build due to undefined symbols.
+ // Linkage = llvm::GlobalVariable::AvailableExternallyLinkage;
+ Linkage = llvm::GlobalVariable::WeakODRLinkage;
break;
}
}
break;
case TSK_ExplicitInstantiationDeclaration:
- Linkage = llvm::GlobalVariable::AvailableExternallyLinkage;
+ // FIXME: Use available_externally linkage. However, this currently
+ // breaks LLVM's build due to undefined symbols.
+ // Linkage = llvm::GlobalVariable::AvailableExternallyLinkage;
break;
}
}
// F<int> is an explicit template instantiation declaration without a
// key function, so its vtable should have weak_odr linkage.
-// CHECK: @_ZTV1FIiE = available_externally constant
+// CHECK: @_ZTV1FIiE = weak_odr constant
// E<int> is an explicit template instantiation declaration. It has a
// key function that is not instantiation, so we should only reference