25 cir::GlobalOp globalOp,
30 if (
cgm.getCodeGenOpts().ForbidGuardVariables)
31 cgm.error(
varDecl.getLocation(),
"guard variables are forbidden");
39 llvm::raw_svector_ostream
out(guardName);
40 cgm.getCXXABI().getMangleContext().mangleStaticGuardVariable(&
varDecl,
out);
45 auto guardAttr = mlir::StringAttr::get(&
cgm.getMLIRContext(), guardName);
49 "Static local guard attr only valid on static local variables");
50 globalOp.setStaticLocalGuardAttr(
51 cir::StaticLocalGuardAttr::get(&
cgm.getMLIRContext(), guardAttr));
59 cgm.emitCXXStaticLocalVarDeclInit(&
varDecl, globalOp, performInit);