On Jul 15, 2011, at 3:11 PM, Douglas Gregor wrote:

> 
> On Jul 15, 2011, at 3:04 PM, Argyrios Kyrtzidis wrote:
> 
>> 
>> On Jul 15, 2011, at 2:49 PM, Douglas Gregor wrote:
>> 
>>> 
>>> On Jul 15, 2011, at 2:39 PM, Argyrios Kyrtzidis wrote:
>>> 
>>>> Author: akirtzidis
>>>> Date: Fri Jul 15 16:39:32 2011
>>>> New Revision: 135304
>>>> 
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=135304&view=rev
>>>> Log:
>>>> The canonical decl for an ObjCImplDecl is it's interface class. Fixes 
>>>> rdar://8728637.
>>>> 
>>>> Modified:
>>>> cfe/trunk/include/clang/AST/DeclObjC.h
>>>> 
>>>> Modified: cfe/trunk/include/clang/AST/DeclObjC.h
>>>> URL: 
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclObjC.h?rev=135304&r1=135303&r2=135304&view=diff
>>>> ==============================================================================
>>>> --- cfe/trunk/include/clang/AST/DeclObjC.h (original)
>>>> +++ cfe/trunk/include/clang/AST/DeclObjC.h Fri Jul 15 16:39:32 2011
>>>> @@ -1122,6 +1122,12 @@
>>>>    ClassInterface(classInterface) {}
>>>> 
>>>> public:
>>>> +  virtual Decl *getCanonicalDecl() {
>>>> +    if (Decl *interface = getClassInterface())
>>>> +      return interface;
>>>> +    return this;
>>>> +  }
>>>> +
>>> 
>>> I think this change should be limited to libclang's 
>>> clang_getCanonicalCursor(). Sema and AST are almost certainly not ready for 
>>> getCanonicalCursor() to change the kind of declaration node except in the 
>>> *very* limited cases corresponding to using declarations.
>> 
>> How does it affect negatively Sema and AST, could you give an example ?
> 
> It's assumed that calling getCanonicalDecl() on a declaration returns a 
> declaration of the same kind… but interfaces and implementations are handled 
> very differently (especially in Sema), so getCanonicalDecl() should not map 
> one to the other.
> 
> It's really only in the libclang world where we want to equate interfaces and 
> implementations. The same issue occurs with categories and category 
> implementations.

Ok, done in r135314.

> 
>       - Doug
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to