[cfe-commits] r133327 - in /cfe/trunk: include/clang/Sema/Sema.h lib/Sema/SemaOverload.cpp lib/Sema/SemaTemplateDeduction.cpp test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3.cpp

Douglas Gregor dgregor at apple.com
Mon Jun 20 08:27:12 PDT 2011

On Jun 17, 2011, at 6:19 PM, Chandler Carruth wrote:

> Author: chandlerc
> Date: Fri Jun 17 20:19:03 2011
> New Revision: 133327
> URL: http://llvm.org/viewvc/llvm-project?rev=133327&view=rev
> Log:
> Accept no-return stripping conversions for pointer type arguments after
> deducing template parameter types. Recently Clang began enforcing the
> more strict checking that the argument type and the deduced function
> parameter type (after substitution) match, but that only consideres
> qualification conversions.
> One problem with this patch is that we check noreturn conversions and
> qualification conversions independently. If a valid conversion would
> require *both*, perhaps interleaved with each other, it will be
> rejected. If this actually occurs (I'm not yet sure it does) and is in
> fact a problem (I'm not yet sure it is), there is a FIXME to implement
> more intelligent conversion checking.

Both noreturn conversions and qualification conversions can't happen for a given from/to type pair. Qualification conversions can't add qualifiers to function types, while noreturn conversions only handle a single level of pointer (to a function). 

	- Doug

More information about the cfe-commits mailing list