llvm-project/clang/docs
Stephane Moore a0a47d8ac1 [clang] Update isDerivedFrom to support Objective-C classes 🔍
Summary:
This change updates `isDerivedFrom` to support Objective-C classes by
converting it to a polymorphic matcher.

Notes:
The matching behavior for Objective-C classes is modeled to match the
behavior of `isDerivedFrom` with C++ classes. To that effect,
`isDerivedFrom` matches aliased types of derived Objective-C classes,
including compatibility aliases. To achieve this, the AST visitor has
been updated to map compatibility aliases to their underlying
Objective-C class.

`isSameOrDerivedFrom` also provides similar behaviors for C++ and
Objective-C classes. The behavior that
`cxxRecordDecl(isSameOrDerivedFrom("X"))` does not match
`class Y {}; typedef Y X;` is mirrored for Objective-C in that
`objcInterfaceDecl(isSameOrDerivedFrom("X"))` does not match either
`@interface Y @end typedef Y X;` or
`@interface Y @end @compatibility_alias X Y;`.

Test Notes:
Ran clang unit tests.

Reviewers: aaron.ballman, jordan_rose, rjmccall, klimek, alexfh, gribozavr

Reviewed By: aaron.ballman, gribozavr

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D60543

llvm-svn: 368632
2019-08-12 23:23:35 +00:00
..
CommandGuide print-supported-cpus quality of life patch. 2019-06-25 23:57:14 +00:00
analyzer [CrossTU] User docs: remove temporary limiation with macro expansion 2019-08-12 12:46:28 +00:00
tools Portable Python script across Python version 2018-12-19 13:46:13 +00:00
AddressSanitizer.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
AttributeReference.rst
AutomaticReferenceCounting.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
Block-ABI-Apple.rst [CodeGen][ObjC] Make copying and disposing of a non-escaping block 2018-07-20 17:10:32 +00:00
Block-ABI-Apple.txt Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
BlockLanguageSpec.rst
CMakeLists.txt docs: Fix Sphinx detection with out-of-tree builds 2017-05-09 01:42:33 +00:00
ClangCheck.rst [clang docs] Minor fix in ClangCheck.rst 2016-11-14 17:31:24 +00:00
ClangCommandLineReference.rst [Support] Fix `-ftime-trace-granularity` option 2019-07-24 14:55:40 +00:00
ClangFormat.rst Adding 'CLion integration' to clang-format doc 2019-04-03 08:56:30 +00:00
ClangFormatStyleOptions.rst [clang-format] Expand AllowShortBlocksOnASingleLine for WebKit 2019-08-11 17:48:36 +00:00
ClangPlugins.rst [PragmaHandler] Expose `#pragma` location 2019-05-21 23:51:38 +00:00
ClangStaticAnalyzer.rst [analyzer]Add user docs rst 2019-07-10 14:49:53 +00:00
ClangTools.rst Fix some sphinx doc errors. 2019-02-01 17:06:41 +00:00
ControlFlowIntegrity.rst cfi-icall: Allow the jump table to be optionally made non-canonical. 2019-08-09 22:31:59 +00:00
ControlFlowIntegrityDesign.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
CrossCompilation.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
DataFlowSanitizer.rst
DataFlowSanitizerDesign.rst
DiagnosticsReference.rst fixup: sphinx warning 2019-01-10 19:26:35 +00:00
DriverArchitecture.png
DriverInternals.rst
ExternalClangExamples.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
FAQ.rst
HardwareAssistedAddressSanitizerDesign.rst hwasan: Improve precision of checks using short granule tags. 2019-07-09 20:22:36 +00:00
HowToSetupToolingForLLVM.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
InternalsManual.rst Clarify when fix-it hints on warnings are appropriate 2019-05-31 21:27:39 +00:00
IntroductionToTheClangAST.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
ItaniumMangleAbiTags.rst
JSONCompilationDatabase.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
LTOVisibility.rst Implement CFI for indirect calls via a member function pointer. 2018-06-26 02:15:47 +00:00
LanguageExtensions.rst [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
LeakSanitizer.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
LibASTImporter.rst Add User docs for ASTImporter 2019-08-06 09:52:21 +00:00
LibASTMatchers.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
LibASTMatchersReference.html [clang] Update isDerivedFrom to support Objective-C classes 🔍 2019-08-12 23:23:35 +00:00
LibASTMatchersTutorial.rst AST Matchers tutorial requests to enable clang-tools-extra. NFC 2019-06-07 16:31:06 +00:00
LibFormat.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
LibTooling.rst [build] Rename clang-headers to clang-resource-headers 2019-03-04 21:19:53 +00:00
MSVCCompatibility.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
Makefile.sphinx
MemorySanitizer.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
Modules.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
ObjectiveCLiterals.rst
OpenMPSupport.rst [DOCS]Support for emission of the debug info for the Cuda devices, NFC. 2019-02-05 20:38:36 +00:00
PCHInternals.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
PCHLayout.graffle
PCHLayout.png
RAVFrontendAction.rst Port getLocStart -> getBeginLoc 2018-08-09 21:08:08 +00:00
README.txt
RefactoringEngine.rst Fix small nits in clang-refactor doc. 2017-10-10 09:00:56 +00:00
ReleaseNotes.rst Bump the trunk version to 10.0.0svn 2019-07-18 11:51:05 +00:00
SafeStack.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
SanitizerCoverage.rst Update SanitizerCoverage doc regarding the issue with pc-table and gc-sections. 2019-02-01 17:12:35 +00:00
SanitizerSpecialCaseList.rst Allow specifying sanitizers in blacklists 2017-09-25 22:11:12 +00:00
SanitizerStats.rst [docs] -fsanitize=cfi only allowed with -fvisibility= 2018-06-15 23:11:18 +00:00
ShadowCallStack.rst Delete x86_64 ShadowCallStack support 2019-03-07 18:56:36 +00:00
SourceBasedCodeCoverage.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
ThinLTO.rst add a missing parenthese in the clang doc 2019-06-14 11:33:40 +00:00
ThreadSafetyAnalysis.rst Correct the attribute spelling for guarded_var and pt_guarded_var. 2017-05-08 12:39:17 +00:00
ThreadSanitizer.rst [docs] Add some architectures into the list of supported ThreadSanitizer platforms 2019-03-05 21:10:42 +00:00
Toolchain.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
Tooling.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
UndefinedBehaviorSanitizer.rst [docs] Add a note about where UBSan emits logs 2019-07-29 22:54:43 +00:00
UsersManual.rst [docs] don't use :option: for Wall Wextra 2019-08-05 19:59:07 +00:00
conf.py Bump the trunk version to 10.0.0svn 2019-07-18 11:51:05 +00:00
doxygen-mainpage.dox
doxygen.cfg.in [NFC] Remove LLVM_ALIGNAS 2019-07-31 03:22:08 +00:00
index.rst Add User docs for ASTImporter 2019-08-06 09:52:21 +00:00
make.bat

README.txt

See llvm/docs/README.txt