From d330e23f183cedb9e6c1cbb809407576f7bbab71 Mon Sep 17 00:00:00 2001 From: Abramo Bagnara Date: Fri, 5 Aug 2011 08:02:55 +0000 Subject: [PATCH] Fixed FieldDecl source range. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136963 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/Decl.cpp | 4 ++-- test/Index/in-class-init.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 test/Index/in-class-init.cpp diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 32b9a624e0..6c7deca5fd 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -2197,8 +2197,8 @@ unsigned FieldDecl::getFieldIndex() const { } SourceRange FieldDecl::getSourceRange() const { - if (isBitField()) - return SourceRange(getInnerLocStart(), getBitWidth()->getLocEnd()); + if (const Expr *E = InitializerOrBitWidth.getPointer()) + return SourceRange(getInnerLocStart(), E->getLocEnd()); return DeclaratorDecl::getSourceRange(); } diff --git a/test/Index/in-class-init.cpp b/test/Index/in-class-init.cpp new file mode 100644 index 0000000000..9469434024 --- /dev/null +++ b/test/Index/in-class-init.cpp @@ -0,0 +1,6 @@ +struct S { + int field = 2; +}; + +// RUN: c-index-test -test-load-source all -std=c++0x %s | FileCheck %s +// CHECK: 2:7: FieldDecl=field:2:7 (Definition) Extent=[2:3 - 2:16] -- 2.50.1