[PATCH] D31673: Allow casting C pointers declared using extern "C" to ObjC pointer types

John McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 6 20:11:37 PDT 2017


rjmccall added inline comments.


================
Comment at: lib/Sema/SemaExprObjC.cpp:3358
           var &&
-          var->getStorageClass() == SC_Extern &&
+          !var->isThisDeclarationADefinition() &&
           var->getType().isConstQualified()) {
----------------
ahatanak wrote:
> rjmccall wrote:
> > Hmm.  Come to think of it, I wonder if we actually care whether the variable has a definition, given that it's const.
> > 
> > Well, we can consider that later.  I agree that this change is good.
> If we don't care whether the variable is a definition, it's possible to check whether the variable declaration is directly contained in a language linkage instead (using a function like isSingleLineLanguageLinkage in lib/AST/Decl.cpp).
Nah, let's keep it simple for now.

Well, maybe the rule ought to be "does a definition exist?" rather than "is the specific declaration that lookup found a definition?"


https://reviews.llvm.org/D31673





More information about the cfe-commits mailing list