llvm-project/clang/lib/Driver
Richard Smith 26b86ea8b1 [c++17] Implement P0522R0 as written. This allows a template template argument
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.

llvm-svn: 290792
2016-12-31 21:41:23 +00:00
..
Action.cpp Fix MSVC "not all control paths return a value" warning 2016-10-28 10:09:35 +00:00
CMakeLists.txt [Driver] Refactor distro detection & classification as a separate API 2016-11-28 21:11:14 +00:00
Compilation.cpp [Driver][OpenMP] Add logic for offloading-specific argument translation. 2016-10-27 17:39:44 +00:00
CrossWindowsToolChain.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
Distro.cpp [Driver] Fix recognizing newer OpenSUSE versions 2016-11-28 21:11:18 +00:00
Driver.cpp [CUDA,Driver] Added --no-cuda-gpu-arch= option. 2016-12-09 22:59:17 +00:00
DriverOptions.cpp Update clang to match llvm r250901. OptTable constructor now takes an ArrayRef. NFC 2015-10-21 16:31:33 +00:00
InputInfo.h Add an Action* member to InputInfo. 2016-01-11 23:15:21 +00:00
Job.cpp [CrashReproducer] Collect PCH included via -include-pch 2016-12-12 19:28:25 +00:00
MSVCToolChain.cpp Revert "Driver: switch Windows to static RelocModel" 2016-12-28 17:41:36 +00:00
MinGWToolChain.cpp Revert r253898 and r253899, this breaks mingw compilation on openSUSE. 2016-01-12 10:41:20 +00:00
Multilib.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
Phases.cpp Reapply "Change -save-temps to emit unoptimized bitcode files." 2014-12-21 07:00:00 +00:00
SanitizerArgs.cpp [sanitizers] lsan+sancov doesn't need ubsanrt (multi def error) 2016-12-08 22:25:01 +00:00
Tool.cpp Rename the version of ConstructJob for multiple outputs to ConstructJobMultipleOutputs. 2016-11-03 15:41:50 +00:00
ToolChain.cpp [Driver] Allow setting the default linker during build 2016-12-14 16:46:50 +00:00
ToolChains.cpp Revert "Driver: switch Windows to static RelocModel" 2016-12-28 17:41:36 +00:00
ToolChains.h Revert "Driver: switch Windows to static RelocModel" 2016-12-28 17:41:36 +00:00
Tools.cpp [c++17] Implement P0522R0 as written. This allows a template template argument 2016-12-31 21:41:23 +00:00
Tools.h Refactor how the MSVC toolchain searches for a compatibility version. 2016-12-07 23:41:58 +00:00
Types.cpp [Driver][OpenMP] Update actions builder to create unbundling action when necessary. 2016-10-27 18:00:51 +00:00