llvm-project/clang/test/Index
Ben Langmuir 93c87fc06e [index] Improve macro indexing support
The major change here is to index macro occurrences in more places than
before, specifically

* In non-expansion references such as `#if`, `#ifdef`, etc.
* When the macro is a reference to a builtin macro such as __LINE__.
* When using the preprocessor state instead of callbacks, we now include
  all definition locations and undefinitions instead of just the latest
  one (which may also have had the wrong location previously).
* When indexing an existing module file (.pcm), we now include module
  macros, and we no longer report unrelated preprocessor macros during
  indexing the module, which could have caused duplication.

Additionally, we now correctly obey the system symbol filter for macros,
so by default in system headers only definition/undefinition occurrences
are reported, but it can be configured to report references as well if
desired.

Extends FileIndexRecord to support occurrences of macros. Since the
design of this type is to keep a single list of entities organized by
source location, we incorporate macros into the existing DeclOccurrence
struct.

Differential Revision: https://reviews.llvm.org/D99758
2021-04-06 09:12:14 -07:00
..
Core [index] Improve macro indexing support 2021-04-06 09:12:14 -07:00
Inputs [ASTReader] Allow controlling separately whether validation should be disabled for a PCH vs a module file 2021-01-21 20:45:54 -08:00
USR [Index] fix USR generation for namespace{extern{X}} 2018-02-02 14:13:37 +00:00
reparse-with-remaps
skip-parsed-bodies [libclang][index][NFC] Fix test for skipping already parsed function bodies 2019-08-23 22:51:23 +00:00
IBOutletCollection.m Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
KeepGoingWithLotsOfErrors.mm
TestClassDecl.m
TestClassForwardDecl.m
allow-editor-placeholders.cpp
annotate-attribute.cpp [libclang] Visit attributes for function and class templates 2017-10-16 23:43:02 +00:00
annotate-comments-availability-attrs.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
annotate-comments-objc.m
annotate-comments-preprocessor.c
annotate-comments-property-accessor.m
annotate-comments-typedef.m [AST] Attach comment in `/** doc */ typedef struct A {} B` to B as well as A. 2019-11-18 11:09:23 +01:00
annotate-comments-unterminated.c
annotate-comments.cpp
annotate-context-sensitive.cpp
annotate-deep-statements.cpp Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better 2019-05-10 17:57:22 +00:00
annotate-literals.m
annotate-macro-args.h
annotate-macro-args.m Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
annotate-module.m
annotate-nested-name-specifier.cpp
annotate-operator-call-expr.cpp [libclang] Fix cursors for arguments of Subscript and Call operators 2018-08-23 09:48:11 +00:00
annotate-parameterized-classes.m
annotate-subscripting.m
annotate-tokens-cxx0x.cpp
annotate-tokens-include.c
annotate-tokens-include.h
annotate-tokens-pp.c Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
annotate-tokens-preamble.c
annotate-tokens-unexposed.cpp [libclang] Only mark CXCursors for explicit attributes with a type 2018-04-24 08:39:46 +00:00
annotate-tokens-with-default-args.cpp
annotate-tokens-with-default-args.h
annotate-tokens.c Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
annotate-tokens.cpp [libclang] Fix cursors for functions with trailing return type 2018-01-03 14:35:48 +00:00
annotate-tokens.m
annotate-toplevel-in-objccontainer.m
annotate-toplevel-in-objccontainer.m.h
arc-annotate.m
arc-complete.m
asm-attribute.c
attributes-cuda.cu
attributes.c [libclang] Expose aligned() attribute. 2019-03-13 16:16:54 +00:00
availability.c Support Swift in platform availability attribute 2018-11-12 02:44:33 +00:00
availability.cpp
blocks.c
boxed-exprs.h
boxed-exprs.m
c-index-api-loadTU-test.m
c-index-getCursor-pp.c
c-index-getCursor-test.m Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
c-index-pch.c
c-index-redecls.c
c-index-unsupported-warning-test.c
cindex-from-source.m
cindex-on-invalid-usrs.m
cindex-on-invalid.m
cindex-test-inclusions.c
code-completion-skip-bodies.cpp
code-completion.cpp
codecompletion-chained.cpp
comment-c-decls.c
comment-cplus-decls.cpp [DeclPrinter] Honor TerseOutput for constructors 2017-11-16 01:28:25 +00:00
comment-cplus-template-decls.cpp
comment-cplus11-specific.cpp
comment-custom-block-command.cpp
comment-lots-of-unknown-commands.c
comment-misc-tags.m
comment-objc-decls.m Clean up ObjCPropertyDecl printing 2019-04-08 19:52:45 +00:00
comment-objc-parameterized-classes.m [Test Fix] Fix broken test Index/comment-objc-parameterized-classes.m 2018-04-12 16:00:05 +00:00
comment-redeclarations.cpp [clang] Refactor doc comments to Decls attribution 2019-08-13 18:11:44 +00:00
comment-to-html-xml-conversion-with-original-literals.cpp
comment-to-html-xml-conversion.cpp [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
comment-unqualified-objc-pointer.m Clean up ObjCPropertyDecl printing 2019-04-08 19:52:45 +00:00
comment-with-preamble.c
comment-xml-schema.c [Wdocumentation] Implement \anchor 2019-12-21 14:52:21 +01:00
compile_commands.json
complete-access-checks-crash.cpp [CodeComplete] Fix the crash in code completion on access checking 2018-07-30 15:19:05 +00:00
complete-access-checks.cpp [CodeComplete] Fix accessibility of protected members when accessing members implicitly. 2018-10-22 08:47:31 +00:00
complete-and-plugins.c [Frontend] Avoid running plugins during code completion parse 2018-05-17 09:21:07 +00:00
complete-arrow-dot.cpp [libclang] Optionally add code completion results for arrow instead of dot 2018-06-13 12:37:08 +00:00
complete-at-EOF.c
complete-at-directives.m
complete-at-exprstmt.m
complete-available.m
complete-block-properties.m [CodeComplete] Penalize inherited ObjC properties for auto-completion 2018-11-20 22:06:54 +00:00
complete-block-property-assignment.m [CodeComplete] Penalize inherited ObjC properties for auto-completion 2018-11-20 22:06:54 +00:00
complete-blocks.m [CodeComplete] Fix crash when completing ObjC block parameter with a broken type 2019-04-04 11:34:18 +00:00
complete-cached-globals.cpp
complete-call.cpp Fix line endings in recently updated test file 2018-06-21 12:39:24 +00:00
complete-categories.m
complete-constructor-params.cpp
complete-ctor-inits.cpp [clang] Improve ctor initializer completions. 2018-11-01 15:54:18 +00:00
complete-cxx-inline-methods.cpp [clang] Improve ctor initializer completions. 2018-11-01 15:54:18 +00:00
complete-declarators.cpp
complete-declarators.m
complete-designated-initializer.m
complete-documentation-properties.m
complete-documentation-templates.cpp
complete-documentation.cpp
complete-enums.c
complete-enums.cpp
complete-exprs.c This reverts commit 632a36bfcfc8273c1861f04ff6758d863c47c784. 2019-07-13 06:27:35 +00:00
complete-exprs.cpp [CodeComplete] Omit templated constructors from member list too. 2018-01-22 20:44:47 +00:00
complete-exprs.m
complete-functor-call.cpp
complete-hiding.c
complete-in-invalid-method.m
complete-in-stringify.c
complete-interfaces.m [completion] complete ObjC interface names in an expression 2017-11-14 01:46:24 +00:00
complete-ivar-access.m
complete-kvc.m
complete-lambdas.cpp
complete-lambdas.mm
complete-macro-args.c
complete-macros.c [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528 2019-07-18 07:17:49 +00:00
complete-macros.h [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528 2019-07-18 07:17:49 +00:00
complete-member-access.m [CodeComplete] Penalize inherited ObjC properties for auto-completion 2018-11-20 22:06:54 +00:00
complete-memfunc-cvquals.cpp
complete-method-decls.m [Sema][CodeComplete][ObjC] Don't split the first selector fragment 2020-06-25 13:58:27 -04:00
complete-module-undef.m
complete-modules.m
complete-natural.m
complete-objc-message-id.m
complete-objc-message.m
complete-optional-params.cpp
complete-parameterized-classes.m [Sema][CodeComplete][ObjC] Don't split the first selector fragment 2020-06-25 13:58:27 -04:00
complete-pch-skip.cpp [Sema] Do not load macros from preamble when LoadExternal is false. 2018-09-19 09:34:55 +00:00
complete-pch.m
complete-pointer-and-reference-to-functions.cpp
complete-preamble.cpp
complete-preamble.h
complete-preprocessor.m [CodeComplete] Fix completion at the end of keywords 2018-04-24 13:48:53 +00:00
complete-properties.m [CodeComplete] Penalize inherited ObjC properties for auto-completion 2018-11-20 22:06:54 +00:00
complete-property-flags.m
complete-property-getset.m
complete-protocols.m
complete-qualified-cached.cpp [ASTUnit] Attempt to unbreak Windows buildbots after r366448 2019-07-18 16:24:09 +00:00
complete-qualified.cpp
complete-recovery.m
complete-stmt.c [CodeComplete] Include more text into typed chunks of pattern completions 2019-06-04 09:26:08 +00:00
complete-super.cpp Do not add a colon chunk to the code completion of class inheritance access modifiers 2017-10-24 13:46:58 +00:00
complete-super.m
complete-switch.c [AST] Build recovery expression by default for all language. 2020-11-23 11:08:28 +01:00
complete-synthesized.m
complete-tabs.c
complete-template-friends-defined.cpp
complete-template-keywords.cpp [CodeComplete] Make sure keyword 'template' is added even when code pattern is disabled. 2018-10-15 12:37:23 +00:00
complete-templates.cpp
complete-type-factors.m [CodeComplete] Do not complete self-initializations 2018-11-07 10:02:31 +00:00
complete-unterminated.c
complete-with-annotations.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
coroutines.cpp [Coroutines] Ensure co_await promise.final_suspend() does not throw 2020-06-22 15:01:42 -07:00
crash-preamble-classes.cpp [Sema] Add implicit members even for invalid CXXRecordDecls 2018-02-02 08:40:08 +00:00
crash-recovery-code-complete.c
crash-recovery-modules.m Make test check position independent as they sometimes come out reversed. NFCI. 2019-09-13 22:12:27 +00:00
crash-recovery-reparse.c
crash-recovery.c
create-libclang-completion-reproducer.c Recommit r329442: Generate Libclang invocation reproducers using a new 2018-04-07 00:03:27 +00:00
create-libclang-parsing-reproducer.c Recommit r329442: Generate Libclang invocation reproducers using a new 2018-04-07 00:03:27 +00:00
create-tu-fail.c
ctor-init-source-loc.cpp
cursor-dynamic-call.mm
cursor-ref-names.cpp
cxx-operator-overload.cpp
cxx.cl [OpenCL] Use spir target for CIndex tests for OpenCL. 2021-03-12 20:11:26 +00:00
cxx11-lambdas.cpp [Index] Index paremeters in lambda expressions. 2018-12-19 13:44:41 +00:00
cxx14-lambdas.cpp [clang] Traverse init-captures while indexing 2020-09-22 02:32:09 -04:00
cxx17-if-with-initializer.cpp [libclang]: visit C++17 if init statements 2020-05-02 22:18:36 +02:00
cxx17-structured-binding.cpp [libclang]: visit BindingDecl in DecompositionDecl 2020-05-02 22:18:31 +02:00
error-on-deserialized.c [clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString 2020-08-05 13:54:37 +01:00
evaluate-cursor.cpp [libclang] Fix crash when visiting a captured VLA 2020-07-08 13:10:16 -07:00
file-includes.c
file-macro-refs.c
file-refs-subscripting.m
file-refs.c
file-refs.cpp
file-refs.m
fix-its.c
fix-its.m
format-comment-cdecls.c
get-cursor-includes.c
get-cursor-macro-args.h
get-cursor-macro-args.m Revert 320391: Certain targets are failing, pulling back to diagnose. 2017-12-11 18:14:51 +00:00
get-cursor.c
get-cursor.cpp [libclang] Stop assuming that the internal C++ ABI ExceptionSpecificationType enumeration is the same as CXCursor_ExceptionSpecificationKind. 2018-05-11 19:46:31 +00:00
get-cursor.m
getcursor-pp-pch.c
getcursor-pp-pch.c.h
getcursor-preamble.h
getcursor-preamble.m
getcursor-recovery.cpp [AST] Preserve the type in RecoveryExprs for broken function calls. 2020-05-11 08:46:18 +02:00
headerfile-comment-to-html.m Fix typos in clang 2018-04-06 15:14:32 +00:00
hidden-redecls.m Fix hidden-redecls.m test for some environments 2020-10-16 09:51:13 +02:00
ignore-warnings-from-headers.cpp [libclang] Allow skipping warnings from all included files 2019-06-11 14:14:24 +00:00
ignore-warnings-from-headers.h [libclang] Allow skipping warnings from all included files 2019-06-11 14:14:24 +00:00
implicit-attrs.m Reapply "[clang][cli] Report result of ParseLangArgs" 2021-02-08 13:14:43 +01:00
in-class-init.cpp
include_test.h
include_test_2.h
index-anonymous-union-fields.cpp [Index] Correctly set symbol kind of IndirectFieldDecl 2019-05-29 10:11:14 +00:00
index-attrs.c
index-attrs.cpp
index-attrs.m [libclang 5/8] Add support for ObjC attributes without args 2018-08-03 05:03:22 +00:00
index-decls.m
index-designated-init-recovery.cpp [clang][index] Fix a crash for accessing a null field decl. 2020-05-21 09:47:36 +02:00
index-file.cpp
index-file.cu
index-invalid-code.m
index-kernel-invocation.cpp
index-local-symbol.cpp [Index] Respect "IndexFunctionLocals" option for type loc. 2018-10-04 11:03:55 +00:00
index-many-call-ops.cpp Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better 2019-05-10 17:57:22 +00:00
index-many-logical-ops.c Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better 2019-05-10 17:57:22 +00:00
index-module-with-vfs.m Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
index-module.m
index-pch-objc.m
index-pch-with-module.m
index-pch.cpp
index-refs.cpp [clang][Index] Fix usage of IndexImplicitInstantiation 2019-02-18 11:30:43 +00:00
index-refs.m
index-subscripting-literals.m [libclang] Add `CXSymbolRole role` to CXIdxEntityRefInfo 2018-02-12 17:42:09 +00:00
index-suppress-refs.cpp
index-suppress-refs.h
index-suppress-refs.hpp
index-suppress-refs.m
index-template-specialization.cpp [Index] Report specialization bases as references when IndexImplicitInstantiation is true 2018-09-23 08:23:48 +00:00
index-template-template-param.cpp Fix indexer crash for default template template parameter value 2017-10-10 21:09:49 +00:00
index-templates.cpp [clang] Make handling of unnamed template params similar to function params 2019-10-01 14:08:51 +00:00
index-with-working-dir.c
initializer-memory.cpp
invalid-code-rdar10451854.m
invalid-code-rdar_7833619.m
invalid-rdar-8236270.cpp
keep-going-include-cycle.c [Preprocessor] Don't avoid entering included files after hitting a fatal error. 2018-12-07 20:29:54 +00:00
keep-going-template-instantiations.cpp [libclang] Fix CXTranslationUnit_KeepGoing 2019-03-07 10:13:50 +00:00
keep-going.cpp [libclang] Fix CXTranslationUnit_KeepGoing 2019-03-07 10:13:50 +00:00
linkage.c
lit.local.cfg [AIX][test/Index] Set/propagate AIXTHREAD_STK for AIX 2019-08-13 13:38:15 +00:00
load-classes.cpp [libclang] Add support for checking abstractness of records 2017-12-14 22:01:50 +00:00
load-decls.c
load-exprs.c
load-namespaces.cpp
load-staticassert.cpp
load-stmts.cpp
local-symbols.m
missing_vfs.c Make test more robust by writing stdout/stderr to different files. 2019-04-29 22:57:15 +00:00
modules-objc-categories.m
ms-if-exists.cpp
ms-property.cpp [index] Fixup for r354942. Specify target in test to achieve stable mangling. 2019-02-27 01:37:43 +00:00
namespaced-base-ctor-init.cpp
nested-binaryoperators.cpp
nullability.c [clang] Add a new nullability annotation for swift async: _Nullable_result 2020-12-07 17:19:20 -05:00
objc-typeargs-protocols.m [libclang 1/8] Add support for ObjCObjectType 2018-08-03 03:03:20 +00:00
opencl-types.cl [OpenCL] Use spir target for CIndex tests for OpenCL. 2021-03-12 20:11:26 +00:00
openmp-tile.c [OpenMP] Implement '#pragma omp tile', by Michael Kruse (@Meinersbur). 2021-02-16 09:45:07 -08:00
overrides.cpp
overrides.m
overriding-ftemplate-comments.cpp Fix an Index test caused by a clang-format change (r332436). 2018-05-16 12:58:13 +00:00
overriding-method-comments.mm
paren-type.c [libclang] Fix the type of 'int (Foo);' 2018-05-01 20:45:25 +00:00
parse-all-comments.c [clang][index] Mark file as C++ in parse-all-comments test 2021-02-08 09:42:44 +01:00
pch-depending-on-deleted-module.c
pch-from-libclang.c mac/arm: XFAIL the last 3 failing tests 2020-12-12 15:09:17 -05:00
pch-opaque-value.cpp
pch-warn-as-error-code-split.cpp
pch-warn-as-error-code-split.h
pch-warn-as-error-code.cpp
pch-with-errors.c [pch] Honour -fallow-pch-with-compiler-errors for overall compilation status 2020-03-31 13:50:12 -07:00
pch-with-errors.m
pch-with-module.m
pipe-size.cl [OpenCL] Add separate read_only and write_only pipe IR types 2018-04-27 10:37:04 +00:00
pr20320.cpp
pr20320.h
pragma-diag-reparse.c [Diagnostic] add a warning which warns about misleading indentation 2019-12-03 21:21:27 +01:00
preamble-conditionals-crash.cpp
preamble-conditionals-inverted-with-error.cpp
preamble-conditionals-inverted.cpp [preamble] Also record the "skipping" state of the preprocessor 2017-11-03 09:40:07 +00:00
preamble-conditionals-skipping.cpp [preamble] Also record the "skipping" state of the preprocessor 2017-11-03 09:40:07 +00:00
preamble-conditionals.cpp
preamble-reparse-chained.c
preamble-reparse-changed-module.m [ASTReader] Allow controlling separately whether validation should be disabled for a PCH vs a module file 2021-01-21 20:45:54 -08:00
preamble-reparse-cmd-define.c
preamble-reparse-cmd-define.c.h
preamble-reparse-cmd-define.c.remap
preamble-reparse-import.m
preamble-reparse-import.m-1.h
preamble-reparse-import.m-2.h
preamble-reparse-import.m-3.h
preamble-reparse-warn-end-of-file.c
preamble-reparse-warn-macro.c
preamble-reparse-with-BOM.m
preamble-reparse.c
preamble-with-implicit-import.m
preamble.c
preamble_macro_template.cpp
print-bitwidth.c
print-cxx-manglings.cpp
print-display-names.cpp [AST] Use written names instead of `type-param-0-0` in more cases when printing types and decls. 2019-11-15 10:40:38 +01:00
print-mangled-name.cpp
print-objc-manglings.m
print-type-cxx11.cpp
print-type-declaration.cpp
print-type-size.c Add an explicit triple to this test to hopefully appease the build bots. 2019-05-07 14:40:37 +00:00
print-type-size.cpp [libclang] Avoid crashing when getting layout info of an undeduced type. 2019-02-26 15:04:18 +00:00
print-type.c Modify TypePrinter to differentiate between anonymous struct and unnamed struct 2021-02-22 14:16:43 -08:00
print-type.cpp Modify TypePrinter to differentiate between anonymous struct and unnamed struct 2021-02-22 14:16:43 -08:00
print-type.m [Sema] Fix Modified Type in address_space AttributedType 2019-01-24 00:11:35 +00:00
print-usrs.c
properties-class-extensions.m
property-getter-setter.m [libclang 7/8] Add support for getting property setter and getter names 2018-08-03 05:38:29 +00:00
rdar-8288645-invalid-code.mm
rdar12316296-codecompletion.m
read-empty-diags.test
record-completion-invocation.c [libclang] Record code-completion invocations to a temporary file when 2017-12-07 20:37:50 +00:00
record-parsing-invocation.c Fix another record-parsing-invocation.c test issue on Windows 2017-12-05 23:04:12 +00:00
recover-bad-code-rdar_7487294.c
recursive-cxx-member-calls.cpp
recursive-member-access.c
redeclarations.cpp
remap-complete.c
remap-cursor-at.c
remap-load.c
reparse-instantiate.cpp
reparse-predef-objc-protocol.m
reparsed-live-issue.cpp Add missing "env" so that test added in r327322 passes on Windows bots. 2018-03-13 00:41:44 +00:00
retain-comments-from-system-headers.c
retain-excluded-conditional-blocks.m [preprocessor] Add an opportunity to retain excluded conditional blocks 2019-08-27 22:15:32 +00:00
retain-target-options.c
single-file-parse.m
skipped-bodies-ctors.cpp [Frontend] Correctly handle instantiating ctors with skipped bodies 2017-12-28 13:05:46 +00:00
skipped-bodies-templates.cpp [Frontend] Handle skipped bodies in template instantiations 2017-12-20 14:32:38 +00:00
skipped-bodies-unused.cpp [Sema] Do not show unused parameter warnings when body is skipped 2018-10-24 08:29:24 +00:00
skipped-function-bodies.cpp Renamed test file to use proper naming convention 2017-12-14 14:51:17 +00:00
skipped-ranges.c
subclass-comment.mm
symbol-visibility.c [AIX][XCOFF] Fixed the test case which failed at aix OS because enable -mignore-xcoff-visibility by default. 2021-03-15 17:33:02 -04:00
target-info.c
targeted-annotation.c
targeted-cursor.c
targeted-cursor.m
targeted-cursor.m.h
targeted-fields.h
targeted-file-refs.c
targeted-nested1.h
targeted-preamble.h
targeted-top.h
unmatched-braces.c
unmatched-braces.m
usrs-cxx0x.cpp
usrs.cpp [clang][Index] Visit UsingDecls and generate USRs for them 2019-02-26 14:23:12 +00:00
usrs.m
visibility.c
warning-flags.c [Diagnostics] Try to improve warning message for -Wreturn-type 2019-11-09 17:54:58 +01:00
werror.c