+GlobalAlias* cloneGlobalAlias(Module &Dst, const GlobalAlias &OrigA,
+ ValueToValueMapTy &VMap,
+ ValueMaterializer *Materializer) {
+ assert(OrigA.getAliasee() && "Original alias doesn't have an aliasee?");
+ auto *NewA = GlobalAlias::create(OrigA.getValueType(),
+ OrigA.getType()->getPointerAddressSpace(),
+ OrigA.getLinkage(), OrigA.getName(), &Dst);
+ NewA->copyAttributesFrom(&OrigA);
+ VMap[&OrigA] = NewA;
+ NewA->setAliasee(cast<Constant>(MapValue(OrigA.getAliasee(), VMap, RF_None,
+ nullptr, Materializer)));
+ return NewA;
+}
+