[PATCH] D20428: Tracking exception specification source locations

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 24 07:30:59 PDT 2016

On Fri, Jun 24, 2016 at 8:39 AM, Richard Smith <richard at metafoo.co.uk> wrote:
> rsmith added a comment.
> Ah right, we were (intentionally, but unfortunately) making an assumption that the `TypeLoc` data layout doesn't change when the exception spec of a function is updated. You'd need to make yourself a `TypeLocBuilder`, copy the relevant data, and update the exception spec loc.

Would that look something like what we do in SemaType.cpp
GetFullTypeForDeclarator()? i.e.,

if (TInfo) {
  TypeLocBuilder TLB;
  ObjCObjectPointerTypeLoc TLoc = TLB.push<ObjCObjectPointerTypeLoc>(T);
  TInfo = TLB.getTypeSourceInfo(Context, T);


> Where are we adjusting the exception specification on the type source info? That (changing the type-info-as-written) seems like a somewhat unusual thing to do implicitly.
> http://reviews.llvm.org/D20428

More information about the cfe-commits mailing list