Correct the starting location for instantiations of field declarations which
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 23 May 2012 04:22:22 +0000 (04:22 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 23 May 2012 04:22:22 +0000 (04:22 +0000)
start with a cv-qualifier. DeclaratorDecl::getTypeSpecStartLoc() does not
produce the location of the first type-specifier (the cv-qualifier) in this
case, because we don't track source locations for cv-qualifiers.

No test here: I've not found a way to test this with a lit-style test, and
introducing a gtest test for this seems unwarranted. Suggestions welcome!

Patch by Daniel Jasper!

llvm-svn: 157311

clang/lib/Sema/SemaTemplateInstantiateDecl.cpp

index 0182b3d..e79c891 100644 (file)
@@ -431,7 +431,7 @@ Decl *TemplateDeclInstantiator::VisitFieldDecl(FieldDecl *D) {
                                             D->isMutable(),
                                             BitWidth,
                                             D->hasInClassInitializer(),
-                                            D->getTypeSpecStartLoc(),
+                                            D->getInnerLocStart(),
                                             D->getAccess(),
                                             0);
   if (!Field) {