[clang] [OpenMP] Fix infinite recursion on global initializers (PR #126269)
Shilei Tian via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 7 09:31:27 PST 2025
================
@@ -22819,8 +22819,12 @@ class GlobalDeclRefChecker final : public StmtVisitor<GlobalDeclRefChecker> {
void declareTargetInitializer(Decl *TD) {
A = TD->getAttr<OMPDeclareTargetDeclAttr>();
DeclVector.push_back(cast<VarDecl>(TD));
+ llvm::DenseSet<Decl *> Visited;
while (!DeclVector.empty()) {
VarDecl *TargetVarDecl = DeclVector.pop_back_val();
----------------
shiltian wrote:
Doesn't `pop_back_val` already remove the element from `DeclVector`, which means `DeclVector` will eventually go empty?
https://github.com/llvm/llvm-project/pull/126269
More information about the cfe-commits
mailing list