[cfe-dev] Bug 15125 - FunctionDecl::getNameInfo().getEndLoc() is off-by-one for C++ destructors

Richard Smith richard at metafoo.co.uk
Wed Feb 13 15:00:57 PST 2013

Looks like the root cause here is that Sema::getDestructorName isn't
building a TypeSourceInfo for the destructor name.

On Wed, Feb 13, 2013 at 2:23 PM, James Abbatiello <abbeyj at gmail.com> wrote:

> Hello,
> I've been looking into http://llvm.org/bugs/show_bug.cgi?id=15125 and I
> think I have an idea of where the problem is coming from but not how to fix
> it.  Advice or input of any kind would be welcome.
> At http://clang.llvm.org/doxygen/DeclarationName_8cpp_source.html#l00578,
> the  TInfo variable is always NULL in my experiments.  So the code returns
> NameLoc (the start location) instead of the end.
> This NULL value comes from
> http://clang.llvm.org/doxygen/d9/d4f/SemaDecl_8cpp_source.html#l03002.
> This code calls GetTypeFromParser with the type of the class (a
> RecordType).  GetTypeFromPointer will then try to dyn_cast this to
> LocInfoType which gets NULL.  That NULL eventually ends up in TInfo above.
> At this point we have both the needed SourceLocations in
> Name.StartLocation and Name.EndLocation but we need a LocInfoType instead.
> Can I retrieve or construct one that's appropriate here?  Or should the
> anonymous union in DeclarationNameLoc be extended to be able to hold a
> TInfo* and an end location when handling one of CXXConstructorName,
> CXXDestructorName and CXXConversionFunctionName?
> --
> James Abbatiello
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130213/845cc497/attachment.html>

More information about the cfe-dev mailing list