Skip to content
Snippets Groups Projects
  1. Aug 03, 2017
  2. Jul 18, 2017
  3. Jul 15, 2017
  4. Jul 08, 2017
  5. Jul 06, 2017
  6. Jul 03, 2017
  7. May 28, 2017
  8. May 26, 2017
  9. May 25, 2017
  10. May 10, 2017
  11. Mar 17, 2017
  12. Mar 16, 2017
  13. Mar 10, 2017
  14. Feb 26, 2017
  15. Feb 22, 2017
  16. Feb 16, 2017
  17. Feb 14, 2017
  18. Feb 09, 2017
  19. Jan 20, 2017
  20. Jan 19, 2017
    • Richard Smith's avatar
      PR13403 (+duplicates): implement C++ DR1310 (http://wg21.link/cwg1310). · a669043d
      Richard Smith authored
      Under this defect resolution, the injected-class-name of a class or class
      template cannot be used except in very limited circumstances (when declaring a
      constructor, in a nested-name-specifier, in a base-specifier, or in an
      elaborated-type-specifier). This is apparently done to make parsing easier, but
      it's a pain for us since we don't know whether a template-id using the
      injected-class-name is valid at the point when we annotate it (we don't yet
      know whether the template-id will become part of an elaborated-type-specifier).
      
      As a tentative resolution to a perceived language defect, mem-initializer-ids
      are added to the list of exceptions here (they generally follow the same rules
      as base-specifiers).
      
      When the reference to the injected-class-name uses the 'typename' or 'template'
      keywords, we permit it to be used to name a type or template as an extension;
      other compilers also accept some cases in this area. There are also a couple of
      corner cases with dependent template names that we do not yet diagnose, but
      which will also get this treatment.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@292518 91177308-0d34-0410-b5e6-96231b3b80d8
      a669043d
  21. Jan 18, 2017
  22. Jan 13, 2017
    • Richard Smith's avatar
      Implement DR1265 (wg21.link/cwg1265). · bcbed8b1
      Richard Smith authored
      Diasllow a declaration using the 'auto' type specifier from using two different
      meanings of it at once, or from declaring multiple functions with deduced
      return types or introducing multiple trailing return types.
      
      The standard does not technically disallow the multiple trailing return types
      case if all the declarators declare variables (such as function pointers with
      trailing return types), but we disallow that too, following the clear intent.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291880 91177308-0d34-0410-b5e6-96231b3b80d8
      bcbed8b1
    • Richard Smith's avatar
      Update C++ status pages for Clang 4 branch: · 71e04144
      Richard Smith authored
       * Update version number in DR tests from 4.0 to 4
       * Teach make_cxx_dr_status script about version numbers that don't contain a
         period.
       * Update cxx_status.html and cxx_dr_status.html to list Clang 4 features as
         "Clang 4" rather than "SVN"
      
      Clang 4 features are still listed in yellow rather than green until release.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291871 91177308-0d34-0410-b5e6-96231b3b80d8
      71e04144
  23. Jan 12, 2017
  24. Jan 09, 2017
    • Richard Smith's avatar
      Implement C++ DR1391 (wg21.link/cwg1391) · 7937c287
      Richard Smith authored
      Check for implicit conversion sequences for non-dependent function
      template parameters between deduction and substitution. The idea is to accept
      as many cases as possible, on the basis that substitution failure outside the
      immediate context is much more common during substitution than during implicit
      conversion sequence formation.
      
      This re-commits r290808, reverted in r290811 and r291412, with a couple of
      fixes for handling of explicitly-specified non-trailing template argument
      packs.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291427 91177308-0d34-0410-b5e6-96231b3b80d8
      7937c287
    • Richard Smith's avatar
      Implement DR1388 (wg21.link/cwg1388). · dd6177c3
      Richard Smith authored
      This issue clarifies how deduction proceeds past a non-trailing function
      parameter pack. Essentially, the pack itself is skipped and consumes no
      arguments (except for those implied by an explicitly-specified template
      arguments), and nothing is deduced from it. As a small fix to the standard's
      rule, we do not allow subsequent deduction to change the length of the function
      parameter pack (by preventing extension of the explicitly-specified pack if
      present, and otherwise deducing all contained packs to empty packs).
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291425 91177308-0d34-0410-b5e6-96231b3b80d8
      dd6177c3
    • Richard Smith's avatar
      Revert r291410 and r291411. · 4711e171
      Richard Smith authored
      The test-suite bots are still failing even after r291410's fix.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291412 91177308-0d34-0410-b5e6-96231b3b80d8
      4711e171
    • Richard Smith's avatar
      Implement C++ DR1391 (wg21.link/cwg1391) · f3bc0e63
      Richard Smith authored
      Check for implicit conversion sequences for non-dependent function
      template parameters between deduction and substitution. The idea is to accept
      as many cases as possible, on the basis that substitution failure outside the
      immediate context is much more common during substitution than during implicit
      conversion sequence formation.
      
      This re-commits r290808, reverted in r290811, with a fix for handling of
      explicitly-specified template argument packs.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291410 91177308-0d34-0410-b5e6-96231b3b80d8
      f3bc0e63
  25. Jan 02, 2017
  26. Dec 31, 2016
    • Richard Smith's avatar
      [c++17] Implement P0522R0 as written. This allows a template template argument · 2faed1c4
      Richard Smith authored
      to be specified for a template template parameter whenever the parameter is at
      least as specialized as the argument (when there's an obvious and correct
      mapping from uses of the parameter to uses of the argument). For example, a
      template with more parameters can be passed to a template template parameter
      with fewer, if those trailing parameters have default arguments.
      
      This is disabled by default, despite being a DR resolution, as it's fairly
      broken in its current state: there are no partial ordering rules to cope with
      template template parameters that have different parameter lists, meaning that
      code that attempts to decompose template-ids based on arity can hit unavoidable
      ambiguity issues.
      
      The diagnostics produced on a non-matching argument are also pretty bad right
      now, but I aim to improve them in a subsequent commit.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290792 91177308-0d34-0410-b5e6-96231b3b80d8
      2faed1c4
  27. Dec 28, 2016
  28. Dec 27, 2016
  29. Dec 19, 2016
  30. Dec 14, 2016
  31. Dec 09, 2016
Loading