Skip to content
Snippets Groups Projects
  1. Sep 19, 2016
  2. Sep 17, 2016
    • Eric Liu's avatar
      When replacements have the same offset, make replacements with smaller length... · 18e5245c
      Eric Liu authored
      When replacements have the same offset, make replacements with smaller length order first in the set.
      
      Summary:
      No behavioral change intended. The change makes iterating the replacements set more intuitive in Replacements class implementation. Previously, insertion is ordered before an deletion/replacement with the same offset, which is counter-intuitive for implementation, especially for a followup patch to support adding insertions around replacements.
      
      With the current ordering, we only need to make `applyAllReplacements` iterate the replacements set reversely when applying them so that deletion/replacement is still applied before insertion with the same offset.
      
      Reviewers: klimek, djasper
      
      Subscribers: klimek, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D24663
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281819 91177308-0d34-0410-b5e6-96231b3b80d8
      18e5245c
  3. Sep 16, 2016
    • Eric Fiselier's avatar
      Touch up [[clang::require_constant_initialization]] docs · fcb405e7
      Eric Fiselier authored
      * Fix an egregious comma usage.
      * Remove the `static` keyword in the example since the variables should have
        external linkage.
      * Use C++11 attributes in the example.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281712 91177308-0d34-0410-b5e6-96231b3b80d8
      fcb405e7
    • David L. Jones's avatar
      Simplify Clang's version number configuration in CMake. · 133fae62
      David L. Jones authored
      Currently, the Clang version is computed as follows:
      
       1. LLVM defines major, minor, and patch versions, all statically set. Today,
          these are 4, 0, and 0, respectively.
       2. The static version numbers are combined into PACKAGE_VERSION along with a
          suffix, so the result today looks like "4.0.0svn".
       3. Clang extracts CLANG_VERSION from PACKAGE_VERSION using a regexp. The regexp
          allows the patch level to omitted, and drops any non-digit trailing values.
          Today, this result looks like "4.0.0".
       4. CLANG_VERSION is then split further into CLANG_VERSION_MAJOR and
          CLANG_VERSION_MINOR. Today, these resolve to 4 and 0, respectively.
       5. If CLANG_VERSION matches a regexp with three version components, then
          CLANG_VERSION_PATCHLEVEL is extracted and the CLANG_HAS_VERSION_PATCHLEVEL
          variable is set to 1. Today, these values are 0 and 1, respectively.
       6. The CLANG_VERSION_* variables (and CLANG_HAS_VERSION_PATCHLEVEL) are
          configured into [llvm/tools/clang/]include/clang/Basic/Version.inc
          verbatim by CMake.
       7. In [llvm/tools/clang/]include/clang/Basic/Version.h, macros are defined
          conditionally, based on CLANG_HAS_VERSION_PATCHLEVEL, to compute
          CLANG_VERSION_STRING as either a two- or three-level version number. Today,
          this value is "4.0.0", because despite the patchlevel being 0, it was
          matched by regexp and is thus "HAS"ed by the preprocessor. This string is
          then used wherever Clang's "version" is needed [*].
      
      [*] Including, notably, by compiler-rt, for computing its installation path.
      
      This change collapses steps 2-5 by defaulting Clang to use LLVM's (non-string)
      version components for the Clang version (see [*] for why not PACKAGE_VERSION),
      and collapses steps 6 and 7 by simply writing CLANG_VERSION_STRING into
      Version.inc. The Clang version today always uses the patchlevel form, so the
      collapsed Version.inc does not have logic for a version without a patch level.
      
      Historically speaking, this technique began with the VER file in r82085 (which
      survives in the form of the regexp in #3). The major, minor, and patchlevel
      versions were introduced by r106863 (which remains in #4-6). The VER file itself
      was deleted in favor of the LLVM version number in r106914. On the LLVM side,
      the individual LLVM_VERSION_MAJOR, LLVM_VERSION_MINOR, and PACKAGE_VERSION
      weren't introduced for nearly two more years, until r150405.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281666 91177308-0d34-0410-b5e6-96231b3b80d8
      133fae62
  4. Sep 15, 2016
  5. Sep 14, 2016
  6. Sep 13, 2016
  7. Sep 12, 2016
Loading