hanchenye-llvm-project/clang/docs
Tom Roeder 521f004e99 [ASTImporter] Add support for importing ChooseExpr AST nodes.
Summary:
This allows ASTs to be merged when they contain ChooseExpr (the GNU
__builtin_choose_expr construction). This is needed, for example, for
cross-CTU analysis of C code that makes use of __builtin_choose_expr.

The node is already supported in the AST, but it didn't have a matcher
in ASTMatchers. So, this change adds the matcher and adds support to
ASTImporter.

This was originally reviewed and approved in
https://reviews.llvm.org/D58292 and submitted as r354832. It was
reverted in r354839 due to failures on the Windows CI builds.

This version fixes the test failures on Windows, which were caused by
differences in template expansion between versions of clang on different
OSes. The version of clang built with MSVC and running on Windows never
expands the template in the C++ test in ImportExpr.ImportChooseExpr in
clang/unittests/AST/ASTImporter.cpp, but the version on Linux does for
the empty arguments and -fms-compatibility.

So, this version of the patch drops the C++ test for
__builtin_choose_expr, since that version was written to catch
regressions of the logic for isConditionTrue() in the AST import code
for ChooseExpr, and those regressions are also caught by
ASTImporterOptionSpecificTestBase.ImportChooseExpr, which does work on
Windows.

Reviewers: shafik, a_sidorin, martong, aaron.ballman, rnk, a.sidorin

Subscribers: cfe-commits, jdoerfert, rnkovacs, aaron.ballman

Tags: #clang

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

llvm-svn: 354916
2019-02-26 19:26:41 +00:00
..
CommandGuide Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
analyzer Fixed header underline in docs. 2019-02-11 15:17:13 +00:00
tools Portable Python script across Python version 2018-12-19 13:46:13 +00:00
AddressSanitizer.rst [ASan] Minor documentation fix: clarify static linking limitation. 2018-12-11 16:47:12 +00:00
AttributeReference.rst
AutomaticReferenceCounting.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
Block-ABI-Apple.rst
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
ClangCheck.rst
ClangCommandLineReference.rst Fix some typos in the clang doc. 2019-01-01 12:51:14 +00:00
ClangFormat.rst clang-format-diff: add an example with hg 2019-01-01 12:32:08 +00:00
ClangFormatStyleOptions.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
ClangPlugins.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
ClangStaticAnalyzer.rst [analyzer] Creating standard Sphinx documentation 2019-02-05 00:39:33 +00:00
ClangTools.rst Fix some sphinx doc errors. 2019-02-01 17:06:41 +00:00
ControlFlowIntegrity.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +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] Updated HWASAN design document to better portray the chance of missing a bug. 2019-02-13 23:14:54 +00:00
HowToSetupToolingForLLVM.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
InternalsManual.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +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
LanguageExtensions.rst Add a new builtin: __builtin_dynamic_object_size 2019-01-30 20:34:53 +00:00
LeakSanitizer.rst
LibASTMatchers.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
LibASTMatchersReference.html [ASTImporter] Add support for importing ChooseExpr AST nodes. 2019-02-26 19:26:41 +00:00
LibASTMatchersTutorial.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
LibFormat.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
LibTooling.rst Adjust documentation for git migration. 2019-01-29 16:37:27 +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
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
README.txt
RefactoringEngine.rst
ReleaseNotes.rst [DOCS]Support for emission of the debug info for the Cuda devices, NFC. 2019-02-05 20:38:36 +00:00
SafeStack.rst [Documentation] Fix problem in docs/SafeStack.rst introduced in r351976. 2019-01-23 20:51:06 +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
SanitizerStats.rst
ShadowCallStack.rst docs: Update the ShadowCallStack documentation. 2019-02-12 22:45:23 +00:00
SourceBasedCodeCoverage.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
ThinLTO.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
ThreadSafetyAnalysis.rst
ThreadSanitizer.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +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 [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
UsersManual.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
conf.py [analyzer] Creating standard Sphinx documentation 2019-02-05 00:39:33 +00:00
doxygen-mainpage.dox
doxygen.cfg.in
index.rst [analyzer] Creating standard Sphinx documentation 2019-02-05 00:39:33 +00:00
make.bat

README.txt

See llvm/docs/README.txt