================
@@ -658,13 +658,33 @@ void CIRGenModule::setCommonAttributes(GlobalDecl gd,
mlir::Operation *gv) {
if (isa_and_nonnull<NamedDecl>(d))
setGVProperties(gv, dyn_cast<NamedDecl>(d));
assert(!cir::MissingFeatures::defaultVisibility());
- assert(!cir::MissingFeatures::opGlobalUsedOrCompilerUsed());
+
+ if (auto gvi = mlir::dyn_cast<cir::CIRGlobalValueInterface>(gv)) {
+ if (d && d->hasAttr<UsedAttr>())
+ addUsedOrCompilerUsedGlobal(gvi);
+
+ if (const auto *vd = dyn_cast_if_present<VarDecl>(d);
+ vd && ((codeGenOpts.KeepPersistentStorageVariables &&
+ (vd->getStorageDuration() == SD_Static ||
+ vd->getStorageDuration() == SD_Thread)) ||
+ (codeGenOpts.KeepStaticConsts &&
+ vd->getStorageDuration() == SD_Static &&
+ vd->getType().isConstQualified())))
+ addUsedOrCompilerUsedGlobal(gvi);
----------------
skc7 wrote:
Thanks for feedback. Added this test.
https://github.com/llvm/llvm-project/pull/188189
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits