[clang] [clang] separate recursive instantiation check from CodeSynthesisContext (PR #162224)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 7 06:13:17 PDT 2025


================
@@ -3864,6 +3863,15 @@ bool Sema::InstantiateInClassInitializer(
              Pattern->getInClassInitStyle() &&
          "pattern and instantiation disagree about init style");
 
+  RecursiveInstGuard AlreadyInstantiating(*this, Instantiation,
+                                          RecursiveInstGuard::Kind::Template);
+  if (AlreadyInstantiating) {
+    // Error out if we hit an instantiation cycle for this initializer.
+    Diag(PointOfInstantiation, diag::err_default_member_initializer_cycle)
----------------
erichkeane wrote:

```suggestion
    return Diag(PointOfInstantiation, diag::err_default_member_initializer_cycle)
```

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


More information about the cfe-commits mailing list