[clang] [OpenMP] Fix infinite recursion on global initializers (PR #126269)

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 7 09:32:19 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();
----------------
jhuber6 wrote:

It gets added back in `Visit`.

https://github.com/llvm/llvm-project/pull/126269


More information about the cfe-commits mailing list