/// CK_ArrayToPointerDecay - Array to pointer decay.
CK_ArrayToPointerDecay,
+ // CK_FunctionToPointerDecay - Function to pointer decay.
+ CK_FunctionToPointerDecay,
+
/// CK_NullToMemberPointer - Null pointer to member pointer.
CK_NullToMemberPointer,
case CastExpr::CK_ArrayToPointerDecay:
fprintf(F, "<ArrayToPointerDecay>");
break;
+ case CastExpr::CK_FunctionToPointerDecay:
+ fprintf(F, "<FunctionToPointerDecay>");
+ break;
case CastExpr::CK_NullToMemberPointer:
fprintf(F, "<NullToMemberPointer>");
break;
assert(!Ty.isNull() && "DefaultFunctionArrayConversion - missing type");
if (Ty->isFunctionType())
- ImpCastExprToType(E, Context.getPointerType(Ty));
+ ImpCastExprToType(E, Context.getPointerType(Ty),
+ CastExpr::CK_FunctionToPointerDecay);
else if (Ty->isArrayType()) {
// In C90 mode, arrays only promote to pointers if the array expression is
// an lvalue. The relevant legalese is C90 6.2.2.1p3: "an lvalue that has
FromType = From->getType();
}
FromType = Context.getPointerType(FromType);
- ImpCastExprToType(From, FromType);
+ ImpCastExprToType(From, FromType, CastExpr::CK_FunctionToPointerDecay);
break;
default: