diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -4252,12 +4252,14 @@ case ICK_Lvalue_To_Rvalue: case ICK_Array_To_Pointer: case ICK_Function_To_Pointer: - case ICK_Function_Conversion: - case ICK_Qualification: case ICK_Num_Conversion_Kinds: case ICK_C_Only_Conversion: case ICK_Incompatible_Pointer_Conversion: llvm_unreachable("Improper second standard conversion"); + + case ICK_Function_Conversion: + case ICK_Qualification: + llvm_unreachable("Improper third standard conversion"); } switch (SCS.Third) { diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -5339,7 +5339,6 @@ // conversions are fine. switch (SCS.Second) { case ICK_Identity: - case ICK_Function_Conversion: case ICK_Integral_Promotion: case ICK_Integral_Conversion: // Narrowing conversions are checked elsewhere. case ICK_Zero_Queue_Conversion: @@ -5385,6 +5384,7 @@ case ICK_Function_To_Pointer: llvm_unreachable("found a first conversion kind in Second"); + case ICK_Function_Conversion: case ICK_Qualification: llvm_unreachable("found a third conversion kind in Second");