Skip to content
  1. Jun 17, 2009
  2. Jun 14, 2009
    • Douglas Gregor's avatar
      Update LLVM. · 33834516
      Douglas Gregor authored
      Implement support for C++ Substitution Failure Is Not An Error
      (SFINAE), which says that errors that occur during template argument
      deduction do *not* produce diagnostics and do not necessarily make a
      program ill-formed. Instead, template argument deduction silently
      fails. This is currently implemented for template argument deduction
      during matching of class template partial specializations, although
      the mechanism will also apply to template argument deduction for
      function templates. The scheme is simple:
      
        - If we are in a template argument deduction context, any diagnostic
          that is considered a SFINAE error (or warning) will be
          suppressed. The error will be propagated up the call stack via the
          normal means.
        - By default, all warnings and errors are SFINAE errors. Add the
          NoSFINAE class to a diagnostic in the .td file to make it a hard
          error (e.g., for access-control violations).
      
      Note that, to make this fully work, every place in Sema that emits an
      error *and then immediately recovers* will need to check
      Sema::isSFINAEContext() to determine whether it must immediately
      return an error rather than recovering.
      
      llvm-svn: 73332
      33834516
  3. Jun 13, 2009
  4. Jun 12, 2009
  5. Jun 11, 2009
  6. Jun 10, 2009
  7. Jun 09, 2009
  8. Jun 08, 2009
  9. Jun 07, 2009
  10. Jun 05, 2009
  11. Jun 04, 2009
  12. Jun 03, 2009
  13. Jun 01, 2009
  14. May 31, 2009
    • Douglas Gregor's avatar
      Initial infrastructure for class template partial specialization. Here · 2373c599
      Douglas Gregor authored
      we have the basics of declaring and storing class template partial
      specializations, matching class template partial specializations at
      instantiation time via (limited) template argument deduction, and
      using the class template partial specialization's pattern for
      instantiation. 
      
      This patch is enough to make a simple is_pointer type trait work, but
      not much else.
      
      llvm-svn: 72662
      2373c599
  15. May 29, 2009
Loading