[clang] [clang][Sema] Diagnose nested local classes defined in a different block scope than their parent (PR #197863)

via cfe-commits cfe-commits at lists.llvm.org
Sun May 17 12:48:50 PDT 2026


================
@@ -10267,6 +10267,9 @@ def ext_ms_anonymous_record : ExtWarn<
 def err_reference_to_local_in_enclosing_context : Error<
   "reference to local %select{variable|binding}1 %0 declared in enclosing "
   "%select{%3|block literal|lambda expression|context}2">;
+def err_local_nested_class_invalid_scope : Error<
+  "nested local class %0 must be defined in the same block scope as "
----------------
Sirraide wrote:

Actually, that’s incorrect if you have e.g.
```c++
struct A {
    void f() {
        struct B { struct C; };
        { struct B::C {}; }
    }
};
```
On that note, can we add this as a test case?

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


More information about the cfe-commits mailing list