llvm-project/clang/test
Douglas Gregor 33834516f3 Update LLVM.
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
2009-06-14 07:33:30 +00:00
..
Analysis Bind the mistakenly generated nonloc::SymbolVal to struct correctly. See the 2009-06-11 09:11:27 +00:00
CXX Move a bunch of tests into temp.param, and write a few tests for paragraphs that hadn't been touched before 2009-06-13 06:59:07 +00:00
CodeGen Fix the calling convention for structs/unions containing SSE vectors on 2009-06-13 21:37:10 +00:00
CodeGenCXX Don't assert when generating code with static_asserts. 2009-06-11 21:22:55 +00:00
CodeGenObjC Don't include system headers when overriding triple. 2009-06-13 20:02:26 +00:00
Coverage AST printing for C++ base classes 2009-05-30 06:58:37 +00:00
Driver PR4016: Forward -fno-show-source-location to clang. 2009-06-08 21:13:54 +00:00
FixIt Update test case; I'm confused why this wasn't failing on the buildbot 2009-05-16 19:30:01 +00:00
Frontend Forward -C and -CC to clang. 2009-06-08 21:48:20 +00:00
Lexer PR4353: Add support for \E as a character escape. 2009-06-10 01:32:39 +00:00
Misc Fix for PR2386: distinguish between insertion and replacements in the 2009-05-18 13:56:52 +00:00
PCH Make precompiled headers work with -E. When we're only preprocessing 2009-05-12 01:31:05 +00:00
Parser change ParseStatementOrDeclaration to emit the 'missing ;' with 2009-06-14 00:23:56 +00:00
Preprocessor Sink the BuiltinInfo object from ASTContext into the 2009-06-14 01:54:56 +00:00
Rewriter Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
Sema PR4351: Add constant evaluation for constructs like "foo == NULL", where 2009-06-14 02:17:33 +00:00
SemaCXX It's an error to use a function declared in a class definition as a default argument before the function has been declared. 2009-06-12 16:51:40 +00:00
SemaObjC Don't allow defining a block with a non-prototype type. Remove a 2009-06-08 04:24:21 +00:00
SemaObjCXX Add an XFAIL test to demonstrate references in Obj-C++, this currently crashes. 2009-06-05 06:03:19 +00:00
SemaTemplate Update LLVM. 2009-06-14 07:33:30 +00:00
CMakeLists.txt Switch CMake testing over to use Daniels new(er) Python-based infrastructure. 2009-06-05 23:57:17 +00:00
Makefile Switch to the new test runner. 2009-06-13 18:28:48 +00:00
TestRunner.sh If stderr isn't a terminal, don't try to guess the terminal width or 2009-05-06 21:28:42 +00:00
cxx-sections.data Add the structure for a C++ test suite that mimics the structure of the C++ standard 2009-06-13 06:06:53 +00:00
make_test_dirs.pl Add the structure for a C++ test suite that mimics the structure of the C++ standard 2009-06-13 06:06:53 +00:00