================
@@ -1474,6 +1474,11 @@ DeclContext *DeclContext::getPrimaryContext() {
   case Decl::ObjCCategoryImpl:
     return this;
 
+  case Decl::CXXRecord:
+    if (auto *OPD = dyn_cast<CXXRecordDecl>(this))
+      if (auto *Def = OPD->getDefinition())
+        return Def;
+    return this;
   default:
----------------
joaosaffran wrote:

The issue I was facing in the default case of `DeclContext::getPrimaryContext` 
was when calling `Tag->getTypeForDecl()` (line 1491). For `ByteAdrressBuffer` 
such method was returning `nullptr`.

For example, when calling `getTypeForDecl` for `StructuredBuffer` I get the 
response below:
```
InjectedClassNameType 0x5555668d3e20 'StructuredBuffer<element_type>' dependent
`-CXXRecord 0x5555668d3a60 'StructuredBuffer'
```

In contrast, if I call the same method for `ByteAddressBuffer` I get:
```
<<<NULL>>>
```

https://github.com/llvm/llvm-project/pull/116699
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to