}
void PreprocessingRecord::addPreprocessedEntity(PreprocessedEntity *Entity) {
- SourceLocation Loc = Entity->getSourceRange().getBegin();
+ assert(Entity);
assert((PreprocessedEntities.empty() ||
- !SourceMgr.isBeforeInTranslationUnit(Loc,
- PreprocessedEntities.back()->getSourceRange().getEnd())) &&
+ !SourceMgr.isBeforeInTranslationUnit(Entity->getSourceRange().getBegin(),
+ PreprocessedEntities.back()->getSourceRange().getBegin())) &&
"Adding a preprocessed entity that is before the previous one in TU");
PreprocessedEntities.push_back(Entity);
}
// RUN: c-index-test -cursor-at=%s.h:1:11 \
// RUN: -cursor-at=%s.h:2:14 \
// RUN: -cursor-at=%s.h:4:5 \
+// RUN: -cursor-at=%s.h:5:5 \
+// RUN: -cursor-at=%s.h:5:14 \
// RUN: -cursor-at=%s:5:7 \
// RUN: -cursor-at=%s:6:6 \
// RUN: -cursor-at=%s:6:19 \
// RUN: c-index-test -cursor-at=%s.h:1:11 \
// RUN: -cursor-at=%s.h:2:14 \
// RUN: -cursor-at=%s.h:4:5 \
+// RUN: -cursor-at=%s.h:5:5 \
+// RUN: -cursor-at=%s.h:5:14 \
// RUN: -cursor-at=%s:5:7 \
// RUN: -cursor-at=%s:6:6 \
// RUN: -cursor-at=%s:6:19 \
// RUN: -include %t.h %s | FileCheck %s
+// From header
// CHECK: macro definition=OBSCURE
// CHECK: macro definition=DECORATION
// CHECK: macro expansion=DECORATION:2:9
// CHECK: macro expansion=OBSCURE:1:9
+// CHECK: macro expansion=DECORATION:2:9
+
+// From main file
+// CHECK: macro expansion=OBSCURE:1:9
// CHECK: macro expansion=OBSCURE:1:9
// CHECK: macro expansion=DECORATION:2:9
cursor.kind == CXCursor_TypeRef)
return CXChildVisit_Recurse;
- // Don't override a preprocessing cursor with another preprocessing
- // cursor; we want the outermost preprocessing cursor.
- if (clang_isPreprocessing(cursor.kind) &&
- clang_isPreprocessing(BestCursor->kind))
- return CXChildVisit_Recurse;
-
*BestCursor = cursor;
return CXChildVisit_Recurse;
}