[PATCH] D58724: [gnustep-objc] Make the GNUstep v2 ABI work for Windows DLLs.

Dustin L. Howett via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 28 23:54:21 PST 2019


DHowett-MSFT added inline comments.


================
Comment at: clang/lib/CodeGen/CGObjCGNU.cpp:1231
+            break;
+
+        auto Storage = llvm::GlobalValue::DefaultStorageClass;
----------------
After we get the `ObjCInterfaceDecl`, we have to make sure it's the one corresponding to the `@interface` and not one for a forward declaration (`@class`).

```                  
+        // The first Interface we find may be a @class,
+        // which should only be treated as the source of
+        // truth in the absence of a true declaration.
+        const ObjCInterfaceDecl *OIDDef = OID->getDefinition();
+        if (OIDDef != nullptr)
+          OID = OIDDef;
+
```

Failure to do so can result in us either failing to import the `CLASS_REF` or, if it has been exported as `CONSTANT`, attempt a method dispatch against a pointer to our own import table.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58724/new/

https://reviews.llvm.org/D58724





More information about the cfe-commits mailing list