Index: cfe/trunk/docs/AutomaticReferenceCounting.rst =================================================================== --- cfe/trunk/docs/AutomaticReferenceCounting.rst +++ cfe/trunk/docs/AutomaticReferenceCounting.rst @@ -9,7 +9,7 @@ /* * Automatic numbering is described in this article: - * http://dev.opera.com/articles/view/automatic-numbering-with-css-counters/ + * https://dev.opera.com/articles/view/automatic-numbering-with-css-counters/ */ /* * Automatic numbering for the TOC. Index: cfe/trunk/docs/ClangFormatStyleOptions.rst =================================================================== --- cfe/trunk/docs/ClangFormatStyleOptions.rst +++ cfe/trunk/docs/ClangFormatStyleOptions.rst @@ -137,13 +137,13 @@ `_ * ``Chromium`` A style complying with `Chromium's style guide - `_ + `_ * ``Mozilla`` A style complying with `Mozilla's style guide `_ * ``WebKit`` A style complying with `WebKit's style guide - `_ + `_ .. START_FORMAT_STYLE_OPTIONS @@ -1278,7 +1278,7 @@ used for ordering ``#includes``. `POSIX extended - `_ + `_ regular expressions are supported. These regular expressions are matched against the filename of an include Index: cfe/trunk/docs/ControlFlowIntegrity.rst =================================================================== --- cfe/trunk/docs/ControlFlowIntegrity.rst +++ cfe/trunk/docs/ControlFlowIntegrity.rst @@ -335,7 +335,7 @@ Publications ============ -`Control-Flow Integrity: Principles, Implementations, and Applications `_. +`Control-Flow Integrity: Principles, Implementations, and Applications `_. Martin Abadi, Mihai Budiu, Ăšlfar Erlingsson, Jay Ligatti. `Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM `_. Index: cfe/trunk/docs/ControlFlowIntegrityDesign.rst =================================================================== --- cfe/trunk/docs/ControlFlowIntegrityDesign.rst +++ cfe/trunk/docs/ControlFlowIntegrityDesign.rst @@ -92,7 +92,7 @@ the bit vectors for the whole program. It currently does this using LLVM's `type metadata`_ mechanism together with link-time optimization. -.. _address point: http://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable-general +.. _address point: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable-general .. _type metadata: https://llvm.org/docs/TypeMetadata.html .. _ByteArrayBuilder: https://llvm.org/docs/doxygen/html/structllvm_1_1ByteArrayBuilder.html @@ -746,7 +746,7 @@ * embedded into other instructions (e.g. `0f4fc3 cmovg %ebx,%eax`). .. _SafeStack: https://clang.llvm.org/docs/SafeStack.html -.. _RFG: http://xlab.tencent.com/en/2016/11/02/return-flow-guard +.. _RFG: https://xlab.tencent.com/en/2016/11/02/return-flow-guard .. _Intel CET: https://software.intel.com/en-us/blogs/2016/06/09/intel-release-new-technology-specifications-protect-rop-attacks Hardware support Index: cfe/trunk/docs/ExternalClangExamples.rst =================================================================== --- cfe/trunk/docs/ExternalClangExamples.rst +++ cfe/trunk/docs/ExternalClangExamples.rst @@ -20,7 +20,7 @@ If you know of (or wrote!) a tool or project using Clang, please send an email to Clang's `development discussion mailing list -`_ to have it added. +`_ to have it added. (or if you are already a Clang contributor, feel free to directly commit additions). Since the primary purpose of this page is to provide examples that can help developers, generally they must have code available. @@ -33,7 +33,7 @@ a persistent in-memory database of references, symbolnames, completions etc." -``_ +``_ "A C/C++ source code indexer and navigator" ``_ @@ -42,7 +42,7 @@ ``_ "The Woboq Code Browser is a web-based code browser for C/C++ projects. - Check out ``_ for an example!" + Check out ``_ for an example!" ``_ "DXR is a source code cross-reference tool that uses static analysis Index: cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst =================================================================== --- cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst +++ cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst @@ -162,7 +162,7 @@ * *TODO: add more "related work" links. Suggestions are welcome.* -.. _Watchdog: http://www.cis.upenn.edu/acg/papers/isca12_watchdog.pdf +.. _Watchdog: https://www.cis.upenn.edu/acg/papers/isca12_watchdog.pdf .. _Effective and Efficient Memory Protection Using Dynamic Tainting: https://www.cc.gatech.edu/~orso/papers/clause.doudalis.orso.prvulovic.pdf .. _SPARC ADI: https://lazytyped.blogspot.com/2017/09/getting-started-with-adi.html .. _AddressSanitizer paper: https://www.usenix.org/system/files/conference/atc12/atc12-final39.pdf Index: cfe/trunk/docs/HowToSetupToolingForLLVM.rst =================================================================== --- cfe/trunk/docs/HowToSetupToolingForLLVM.rst +++ cfe/trunk/docs/HowToSetupToolingForLLVM.rst @@ -23,7 +23,7 @@ ======================================== If you intend to use make to build LLVM, you should have CMake 2.8.6 or -later installed (can be found `here `_). +later installed (can be found `here `_). First, you need to generate Makefiles for LLVM with CMake. You need to make a build directory and run CMake from it: Index: cfe/trunk/docs/InternalsManual.rst =================================================================== --- cfe/trunk/docs/InternalsManual.rst +++ cfe/trunk/docs/InternalsManual.rst @@ -534,7 +534,7 @@ ``SourceRange`` and ``CharSourceRange`` --------------------------------------- -.. mostly taken from http://lists.llvm.org/pipermail/cfe-dev/2010-August/010595.html +.. mostly taken from https://lists.llvm.org/pipermail/cfe-dev/2010-August/010595.html Clang represents most source ranges by [first, last], where "first" and "last" each point to the beginning of their respective tokens. For example consider @@ -1364,7 +1364,7 @@ can also be instantiated to represent the control-flow of any class that subclasses ``Stmt``, which includes simple expressions. Control-flow graphs are especially useful for performing `flow- or path-sensitive -`_ program +`_ program analyses on a given function. Basic Blocks Index: cfe/trunk/docs/IntroductionToTheClangAST.rst =================================================================== --- cfe/trunk/docs/IntroductionToTheClangAST.rst +++ cfe/trunk/docs/IntroductionToTheClangAST.rst @@ -9,7 +9,7 @@ .. raw:: html -
+
`Slides `_ Index: cfe/trunk/docs/JSONCompilationDatabase.rst =================================================================== --- cfe/trunk/docs/JSONCompilationDatabase.rst +++ cfe/trunk/docs/JSONCompilationDatabase.rst @@ -29,7 +29,7 @@ Supported Systems ================= -Currently `CMake `_ (since 2.8.5) supports generation +Currently `CMake `_ (since 2.8.5) supports generation of compilation databases for Unix Makefile builds (Ninja builds in the works) with the option ``CMAKE_EXPORT_COMPILE_COMMANDS``. Index: cfe/trunk/docs/LanguageExtensions.rst =================================================================== --- cfe/trunk/docs/LanguageExtensions.rst +++ cfe/trunk/docs/LanguageExtensions.rst @@ -20,7 +20,7 @@ This document describes the language extensions provided by Clang. In addition to the language extensions listed here, Clang aims to support a broad range of GCC extensions. Please see the `GCC manual -`_ for more information on +`_ for more information on these extensions. .. _langext-feature_check: @@ -1036,9 +1036,9 @@ * The Microsoft standard C++ library Clang supports the `GNU C++ type traits -`_ and a subset of the +`_ and a subset of the `Microsoft Visual C++ Type traits -`_. +`_. Feature detection is supported only for some of the primitives at present. User code should not use these checks because they bear no direct relation to the @@ -1354,7 +1354,7 @@ In Objective-C, functions and methods are generally assumed to follow the `Cocoa Memory Management -`_ +`_ conventions for ownership of object arguments and return values. However, there are exceptions, and so Clang provides attributes to allow these exceptions to be documented. This are used by ARC and the @@ -2218,7 +2218,7 @@ guaranteed. Clang provides experimental builtins to support C++ Coroutines as defined by -http://wg21.link/P0057. The following four are intended to be used by the +https://wg21.link/P0057. The following four are intended to be used by the standard library to implement `std::experimental::coroutine_handle` type. **Syntax**: @@ -2296,10 +2296,10 @@ are accepted with the ``__attribute__((foo))`` syntax are also accepted as ``[[gnu::foo]]``. This only extends to attributes which are specified by GCC (see the list of `GCC function attributes -`_, `GCC variable -attributes `_, and +`_, `GCC variable +attributes `_, and `GCC type attributes -`_). As with the GCC +`_). As with the GCC implementation, these attributes must appertain to the *declarator-id* in a declaration, which means they must go either at the start of the declaration or immediately after the name being declared. Index: cfe/trunk/docs/MSVCCompatibility.rst =================================================================== --- cfe/trunk/docs/MSVCCompatibility.rst +++ cfe/trunk/docs/MSVCCompatibility.rst @@ -68,8 +68,8 @@ base class`_. Clang does not yet support this. .. _#pragma pointers_to_members: - http://msdn.microsoft.com/en-us/library/83cch5a6.aspx -.. _/vm: http://msdn.microsoft.com/en-us/library/yad46a6z.aspx + https://msdn.microsoft.com/en-us/library/83cch5a6.aspx +.. _/vm: https://msdn.microsoft.com/en-us/library/yad46a6z.aspx .. _pointer to a member of a virtual base class: https://llvm.org/PR15713 * Debug info: :good:`Mostly complete`. Clang emits relatively complete CodeView Index: cfe/trunk/docs/PCHInternals.rst =================================================================== --- cfe/trunk/docs/PCHInternals.rst +++ cfe/trunk/docs/PCHInternals.rst @@ -332,7 +332,7 @@ size). Within the AST file, the subexpressions of an expression are stored, in reverse order, prior to the expression that owns those expression, using a form of `Reverse Polish Notation -`_. For example, an +`_. For example, an expression ``3 - 4 + 5`` would be represented as follows: +-----------------------+ Index: cfe/trunk/docs/SafeStack.rst =================================================================== --- cfe/trunk/docs/SafeStack.rst +++ cfe/trunk/docs/SafeStack.rst @@ -18,14 +18,14 @@ on the safe stack. SafeStack is a part of the `Code-Pointer Integrity (CPI) Project -`_. +`_. Performance ----------- The performance overhead of the SafeStack instrumentation is less than 0.1% on average across a variety of benchmarks (see the `Code-Pointer Integrity -`__ paper for details). This is mainly +`_ paper for details). This is mainly because most small functions do not have any variables that require the unsafe stack and, hence, do not need unsafe stack frames to be created. The cost of creating unsafe stack frames for large functions is amortized by the cost of @@ -84,9 +84,9 @@ A complete protection against control-flow hijack attacks requires combining SafeStack with another mechanism that enforces the integrity of code pointers that are stored on the heap or the unsafe stack, such as `CPI -`_, or a forward-edge control flow integrity +`_, or a forward-edge control flow integrity mechanism that enforces correct calling conventions at indirect call sites, -such as `IFCC `_ with arity +such as `IFCC `_ with arity checks. Clang has control-flow integrity protection scheme for :doc:`C++ virtual calls `, but not non-virtual indirect calls. With SafeStack alone, an attacker can overwrite a function pointer on the heap or @@ -106,7 +106,7 @@ storing it in the heap (as already done e.g., by ``setjmp``/``longjmp`` implementation in glibc), or store it in a safe region instead. -The `CPI paper `_ describes two alternative, +The `CPI paper `_ describes two alternative, stronger safe stack protection mechanisms, that rely on software fault isolation, or hardware segmentation (as available on x86-32 and some x86-64 CPUs). @@ -186,14 +186,14 @@ Design ====== -Please refer to the `Code-Pointer Integrity `__ +Please refer to the `Code-Pointer Integrity `_ project page for more information about the design of the SafeStack and its related technologies. setjmp and exception handling ----------------------------- -The `OSDI'14 paper `_ mentions that +The `OSDI'14 paper `_ mentions that on Linux the instrumentation pass finds calls to setjmp or functions that may throw an exception, and inserts required instrumentation at their call sites. Specifically, the instrumentation pass saves the shadow stack pointer @@ -204,7 +204,7 @@ Publications ------------ -`Code-Pointer Integrity `__. +`Code-Pointer Integrity `_. Volodymyr Kuznetsov, Laszlo Szekeres, Mathias Payer, George Candea, R. Sekar, Dawn Song. USENIX Symposium on Operating Systems Design and Implementation (`OSDI `_), Broomfield, CO, October 2014 Index: cfe/trunk/docs/SanitizerCoverage.rst =================================================================== --- cfe/trunk/docs/SanitizerCoverage.rst +++ cfe/trunk/docs/SanitizerCoverage.rst @@ -222,9 +222,9 @@ If blocks A, B, and C are all covered we know for certain that the edges A=>B and B=>C were executed, but we still don't know if the edge A=>C was executed. Such edges of control flow graph are called -`critical `_. The -edge-level coverage simply splits all critical -edges by introducing new dummy blocks and then instruments those blocks: +`critical `_. +The edge-level coverage simply splits all critical edges by introducing new +dummy blocks and then instruments those blocks: .. code-block:: none Index: cfe/trunk/docs/Toolchain.rst =================================================================== --- cfe/trunk/docs/Toolchain.rst +++ cfe/trunk/docs/Toolchain.rst @@ -117,7 +117,7 @@ * GNU ld * GNU gold -* LLVM's `lld `_ +* LLVM's `lld `_ * MSVC's link.exe Link-time optimization is natively supported by lld, and supported via @@ -164,7 +164,7 @@ compiler-rt (LLVM) ^^^^^^^^^^^^^^^^^^ -`LLVM's compiler runtime library `_ provides a +`LLVM's compiler runtime library `_ provides a complete set of runtime library functions containing all functions that Clang will implicitly call, in ``libclang_rt.builtins..a``. @@ -222,7 +222,7 @@ The unwind library provides a family of ``_Unwind_*`` functions implementing the language-neutral stack unwinding portion of the Itanium C++ ABI -(`Level I `_). +(`Level I `_). It is a dependency of the C++ ABI library, and sometimes is a dependency of other runtimes. @@ -254,7 +254,7 @@ ^^^^^^^^^^^^^^^^^^^^^^ This is another implementation of the libunwind specification. -See `libunwind (nongnu.org) `_. +See `libunwind (nongnu.org) `_. libunwind (PathScale) ^^^^^^^^^^^^^^^^^^^^^ @@ -279,7 +279,7 @@ ------------------ Clang supports a wide variety of -`C standard library `_ +`C standard library `_ implementations. C++ ABI library @@ -288,9 +288,9 @@ The C++ ABI library provides an implementation of the library portion of the Itanium C++ ABI, covering both the `support functionality in the main Itanium C++ ABI document -`_ and +`_ and `Level II of the exception handling support -`_. +`_. References to the functions and objects in this library are implicitly generated by Clang when compiling C++ code. @@ -306,7 +306,7 @@ libc++abi (LLVM) ^^^^^^^^^^^^^^^^ -`libc++abi `_ is LLVM's implementation of this +`libc++abi `_ is LLVM's implementation of this specification. libsupc++ (GNU) @@ -332,12 +332,12 @@ -------------------- Clang supports use of either LLVM's libc++ or GCC's libstdc++ implementation -of the `C++ standard library `_. +of the `C++ standard library `_. libc++ (LLVM) ^^^^^^^^^^^^^ -`libc++ `_ is LLVM's implementation of the C++ +`libc++ `_ is LLVM's implementation of the C++ standard library, aimed at being a complete implementation of the C++ standards from C++11 onwards. Index: cfe/trunk/docs/UndefinedBehaviorSanitizer.rst =================================================================== --- cfe/trunk/docs/UndefinedBehaviorSanitizer.rst +++ cfe/trunk/docs/UndefinedBehaviorSanitizer.rst @@ -338,4 +338,4 @@ `_ * From John Regehr's *Embedded in Academia* blog: `A Guide to Undefined Behavior in C and C++ - `_ + `_ Index: cfe/trunk/docs/UsersManual.rst =================================================================== --- cfe/trunk/docs/UsersManual.rst +++ cfe/trunk/docs/UsersManual.rst @@ -15,8 +15,8 @@ these languages. Clang builds on the LLVM optimizer and code generator, allowing it to provide high-quality optimization and code generation support for many targets. For more general information, please see the -`Clang Web Site `_ or the `LLVM Web -Site `_. +`Clang Web Site `_ or the `LLVM Web +Site `_. This document describes important notes about using Clang as a compiler for an end-user, documenting the supported features, command line @@ -994,7 +994,7 @@ Precompiled Headers ------------------- -`Precompiled headers `__ +`Precompiled headers `_ are a general approach employed by many compilers to reduce compilation time. The underlying motivation of the approach is that it is common for the same (and often large) header files to be included by multiple @@ -1482,7 +1482,7 @@ 3. Convert the collected profile data to LLVM's sample profile format. This is currently supported via the AutoFDO converter ``create_llvm_prof``. - It is available at http://github.com/google/autofdo. Once built and + It is available at https://github.com/google/autofdo. Once built and installed, you can convert the ``perf.data`` file to LLVM using the command: @@ -1521,12 +1521,12 @@ 2. Binary encoding. This uses a more efficient encoding that yields smaller profile files. This is the format generated by the ``create_llvm_prof`` tool - in http://github.com/google/autofdo. + in https://github.com/google/autofdo. 3. GCC encoding. This is based on the gcov format, which is accepted by GCC. It is only interesting in environments where GCC and Clang co-exist. This encoding is only generated by the ``create_gcov`` tool in - http://github.com/google/autofdo. It can be read by LLVM and + https://github.com/google/autofdo. It can be read by LLVM and ``llvm-profdata``, but it cannot be generated by either. If you are using Linux Perf to generate sampling profiles, you can use the @@ -1831,9 +1831,9 @@ where ``fragmentkind`` is one of ``name``, ``type``, or ``encoding``, indicating whether the following mangled name fragments are -<`name `_>s, -<`type `_>s, or -<`encoding `_>s, +<`name `_>s, +<`type `_>s, or +<`encoding `_>s, respectively. Blank lines and lines starting with ``#`` are ignored. @@ -2829,7 +2829,7 @@ To enable clang-cl to find system headers, libraries, and the linker when run from the command-line, it should be executed inside a Visual Studio Native Tools Command Prompt or a regular Command Prompt where the environment has been set -up using e.g. `vcvarsall.bat `_. +up using e.g. `vcvarsall.bat `_. clang-cl can also be used from inside Visual Studio by selecting the LLVM Platform Toolset. The toolset is not part of the installer, but may be installed Index: cfe/trunk/docs/analyzer/DesignDiscussions/InitializerLists.rst =================================================================== --- cfe/trunk/docs/analyzer/DesignDiscussions/InitializerLists.rst +++ cfe/trunk/docs/analyzer/DesignDiscussions/InitializerLists.rst @@ -145,7 +145,7 @@ actual metadata value. So we'd be escaping more stuff than necessary. If only we had "ghost fields" -(http://lists.llvm.org/pipermail/cfe-dev/2016-May/049000.html), it would have +(https://lists.llvm.org/pipermail/cfe-dev/2016-May/049000.html), it would have been much easier, because the ghost field would only contain the actual metadata, and the Store would always know about it. This example adds to my belief that ghost fields are exactly what we need for most C++ checkers.