llvm-project/clang/docs
Nick Desaulniers 246398ece7 [clang][Parse] properly parse asm-qualifiers, asm inline
Summary:
The parsing of GNU C extended asm statements was a little brittle and
had a few issues:
- It was using Parse::ParseTypeQualifierListOpt to parse the `volatile`
  qualifier.  That parser is really meant for TypeQualifiers; an asm
  statement doesn't really have a type qualifier. This is still maybe
  nice to have, but not necessary. We now can check for the `volatile`
  token by properly expanding the grammer, rather than abusing
  Parse::ParseTypeQualifierListOpt.
- The parsing of `goto` was position dependent, so `asm goto volatile`
  wouldn't parse. The qualifiers should be position independent to one
  another. Now they are.
- We would warn on duplicate `volatile`, but the parse error for
  duplicate `goto` was a generic parse error and wasn't clear.
- We need to add support for the recent GNU C extension `asm inline`.
  Adding support to the parser with the above issues highlighted the
  need for this refactoring.

Link: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html

Reviewers: aaron.ballman

Reviewed By: aaron.ballman

Subscribers: aheejin, jfb, nathanchance, cfe-commits, echristo, efriedma, rsmith, chandlerc, craig.topper, erichkeane, jyu2, void, srhines

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75563
2020-03-12 15:13:59 -07:00
..
CommandGuide Re-add documentation for -flax-vector-conversions= removed in 2020-01-23 12:28:03 -08:00
analyzer [analyzer][taint] Add isTainted debug expression inspection check 2020-03-03 14:40:23 +01:00
tools [docs] dump-ast-matchers removes const from Matcher args and handles template functions slightly better 2020-02-26 01:56:50 +00:00
AddressSanitizer.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
AutomaticReferenceCounting.rst Rewrite the non-trivial structs section of the ARC spec. 2020-03-06 02:51:45 -05:00
Block-ABI-Apple.rst fix some typos to cycle bots 2020-02-10 13:51:23 -05: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 [clang][cmake] Include generated rst files in html built by docs-clang-html target 2020-03-05 21:30:37 -08:00
ClangCheck.rst
ClangCommandLineReference.rst [docs] Regenerate ClangCommandLineReference.rst 2020-03-10 11:10:18 -07:00
ClangFormat.rst Revert "[clang-format] Add option to specify explicit config file" 2020-03-11 16:14:42 -04:00
ClangFormatStyleOptions.rst Revert "[clang-format] Add option to specify explicit config file" 2020-03-11 16:14:42 -04: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
ConstantInterpreter.rst [ConstExprPreter] Removed the flag forcing the use of the interpreter 2019-11-27 20:07:19 +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 Update hwasan docs to cover outlined checks and globals. 2020-02-06 17:44:43 -08:00
HowToSetupToolingForLLVM.rst [NFC] Removing experimental designation for ninja in docs. 2020-01-28 15:28:40 -08:00
InternalsManual.rst Add a bit of documentation on attribute spellings that were missing. 2020-01-22 15:22:40 -05: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 LTOVisibility.rst: fix up syntax in example 2020-01-08 11:43:11 -08:00
LanguageExtensions.rst Adding some documentation for __builtin_dump_struct. 2020-02-27 09:30:17 -05:00
LeakSanitizer.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
LibASTImporter.rst [ASTImporter][NFC] Fix typo in user docs 2019-10-07 11:14:53 +00:00
LibASTMatchers.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
LibASTMatchersReference.html [clang] Prune 'IsOMPStructuredBlock' Stmt bit 2020-03-12 14:48:57 +03:00
LibASTMatchersTutorial.rst fix a doc typo to cycle bots 2019-12-20 21:39:01 -05:00
LibFormat.rst Update our URLs in clang doc to use https 2018-11-04 17:02:00 +00:00
LibTooling.rst [Tooling] Migrated APIs that take ownership of objects to unique_ptr 2019-08-30 09:29:34 +00:00
MSVCCompatibility.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
Makefile.sphinx
MemorySanitizer.rst [ReleaseNotes] MemorySanitizer support of ASLR on FreeBSD 2019-08-27 10:04:03 +00:00
Modules.rst [Implicit Modules] Add -cc1 option -fmodules-strict-context-hash which includes search paths and diagnostics. 2019-10-21 22:51:13 +00:00
ObjectiveCLiterals.rst
OpenCLSupport.rst [OpenCL] Add doc to describe OpenCL support 2019-10-17 12:56:02 +00:00
OpenMPSupport.rst [OPENMP][DOCS]Mark depobj as implemented, NFC. 2020-03-11 13:26:01 -04:00
PCHInternals.rst [Documentation] Use HTTPS whenever possible 2019-01-23 20:39:07 +00:00
PCHLayout.graffle
PCHLayout.png
RAVFrontendAction.rst [Tooling] Migrated APIs that take ownership of objects to unique_ptr 2019-08-30 09:29:34 +00:00
README.txt
RefactoringEngine.rst Fix small nits in clang-refactor doc. 2017-10-10 09:00:56 +00:00
ReleaseNotes.rst [clang][Parse] properly parse asm-qualifiers, asm inline 2020-03-12 15:13:59 -07:00
SafeStack.rst [Docs] Modernize references to macOS 2019-05-30 16:46:22 +00:00
SanitizerCoverage.rst fix doc typos to cycle bots 2020-01-19 09:51:25 -05: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 fix some typos to cycle bots 2020-02-10 13:51:23 -05:00
ThinLTO.rst ThinLTO: Document the option BOOTSTRAP_LLVM_ENABLE_LTO 2019-09-02 15:34:53 +00:00
ThreadSafetyAnalysis.rst
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 [UBSan][clang][compiler-rt] Applying non-zero offset to nullptr is undefined behaviour 2019-10-10 09:25:02 +00:00
UsersManual.rst clang: Switch C compilations to C17 by default. 2020-03-02 09:39:26 -08:00
conf.py Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
doxygen-mainpage.dox
doxygen.cfg.in [NFC] Remove LLVM_ALIGNAS 2019-07-31 03:22:08 +00:00
index.rst [OpenCL] Add doc to describe OpenCL support 2019-10-17 12:56:02 +00:00
make.bat

README.txt

See llvm/docs/README.txt