/// void operator delete[](void*, unsigned int);
TLI_DEFINE_ENUM_INTERNAL(ZdaPvj)
TLI_DEFINE_STRING_INTERNAL("_ZdaPvj")
+/// void operator delete[](void*, unsigned int, align_val_t);
+TLI_DEFINE_ENUM_INTERNAL(ZdaPvjSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdaPvjSt11align_val_t")
/// void operator delete[](void*, unsigned long);
TLI_DEFINE_ENUM_INTERNAL(ZdaPvm)
TLI_DEFINE_STRING_INTERNAL("_ZdaPvm")
+/// void operator delete[](void*, unsigned long, align_val_t);
+TLI_DEFINE_ENUM_INTERNAL(ZdaPvmSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdaPvmSt11align_val_t")
/// void operator delete(void*);
TLI_DEFINE_ENUM_INTERNAL(ZdlPv)
TLI_DEFINE_STRING_INTERNAL("_ZdlPv")
/// void operator delete(void*, unsigned int);
TLI_DEFINE_ENUM_INTERNAL(ZdlPvj)
TLI_DEFINE_STRING_INTERNAL("_ZdlPvj")
+/// void operator delete(void*, unsigned int, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZdlPvjSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdlPvjSt11align_val_t")
/// void operator delete(void*, unsigned long);
TLI_DEFINE_ENUM_INTERNAL(ZdlPvm)
TLI_DEFINE_STRING_INTERNAL("_ZdlPvm")
+/// void operator delete(void*, unsigned long, align_val_t)
+TLI_DEFINE_ENUM_INTERNAL(ZdlPvmSt11align_val_t)
+TLI_DEFINE_STRING_INTERNAL("_ZdlPvmSt11align_val_t")
/// void *new[](unsigned int);
TLI_DEFINE_ENUM_INTERNAL(Znaj)
TLI_DEFINE_STRING_INTERNAL("_Znaj")
TLIFn == LibFunc_msvc_delete_array_ptr64_nothrow) // delete[](void*, nothrow)
ExpectedNumParams = 2;
else if (TLIFn == LibFunc_ZdaPvSt11align_val_tRKSt9nothrow_t || // delete(void*, align_val_t, nothrow)
- TLIFn == LibFunc_ZdlPvSt11align_val_tRKSt9nothrow_t) // delete[](void*, align_val_t, nothrow)
+ TLIFn == LibFunc_ZdlPvSt11align_val_tRKSt9nothrow_t || // delete[](void*, align_val_t, nothrow)
+ TLIFn == LibFunc_ZdlPvjSt11align_val_t || // delete(void*, unsigned long, align_val_t)
+ TLIFn == LibFunc_ZdlPvmSt11align_val_t || // delete(void*, unsigned long, align_val_t)
+ TLIFn == LibFunc_ZdaPvjSt11align_val_t || // delete[](void*, unsigned int, align_val_t)
+ TLIFn == LibFunc_ZdaPvmSt11align_val_t) // delete[](void*, unsigned long, align_val_t)
ExpectedNumParams = 3;
else
return false;
case LibFunc_ZdlPvSt11align_val_tRKSt9nothrow_t:
// void operator delete[](void*, align_val_t, nothrow)
case LibFunc_ZdaPvSt11align_val_tRKSt9nothrow_t:
+ // void operator delete(void*, unsigned int, align_val_t)
+ case LibFunc_ZdlPvjSt11align_val_t:
+ // void operator delete(void*, unsigned long, align_val_t)
+ case LibFunc_ZdlPvmSt11align_val_t:
+ // void operator delete[](void*, unsigned int, align_val_t);
+ case LibFunc_ZdaPvjSt11align_val_t:
+ // void operator delete[](void*, unsigned long, align_val_t);
+ case LibFunc_ZdaPvmSt11align_val_t:
return (NumParams == 3 && FTy.getParamType(0)->isPointerTy());
case LibFunc_memset_pattern16:
declare void @_ZdlPvSt11align_val_tRKSt9nothrow_t(i8*, i64, i8*) nobuiltin
; delete[](void*, align_val_t, nothrow)
declare void @_ZdaPvSt11align_val_tRKSt9nothrow_t(i8*, i64, i8*) nobuiltin
-
+; delete(void*, unsigned int, align_val_t)
+declare void @_ZdlPvjSt11align_val_t(i8*, i32, i32) nobuiltin
+; delete(void*, unsigned long, align_val_t)
+declare void @_ZdlPvmSt11align_val_t(i8*, i64, i64) nobuiltin
+; delete[](void*, unsigned int, align_val_t)
+declare void @_ZdaPvjSt11align_val_t(i8*, i32, i32) nobuiltin
+; delete[](void*, unsigned long, align_val_t)
+declare void @_ZdaPvmSt11align_val_t(i8*, i64, i64) nobuiltin
define void @test8() {
; CHECK-LABEL: @test8(
call void @_ZdlPvSt11align_val_tRKSt9nothrow_t(i8* %nwjat, i64 8, i8* %nt) builtin
%najat = call i8* @_ZnajSt11align_val_tRKSt9nothrow_t(i32 32, i32 8, i8* %nt) builtin
call void @_ZdaPvSt11align_val_tRKSt9nothrow_t(i8* %najat, i64 8, i8* %nt) builtin
+ %nwa2 = call i8* @_ZnwmSt11align_val_t(i64 32, i64 8) builtin
+ call void @_ZdlPvmSt11align_val_t(i8* %nwa2, i64 32, i64 8) builtin
+ %nwja2 = call i8* @_ZnwjSt11align_val_t(i32 32, i32 8) builtin
+ call void @_ZdlPvjSt11align_val_t(i8* %nwa2, i32 32, i32 8) builtin
+ %naa2 = call i8* @_ZnamSt11align_val_t(i64 32, i64 8) builtin
+ call void @_ZdaPvmSt11align_val_t(i8* %naa2, i64 32, i64 8) builtin
+ %naja2 = call i8* @_ZnajSt11align_val_t(i32 32, i32 8) builtin
+ call void @_ZdaPvjSt11align_val_t(i8* %naja2, i32 32, i32 8) builtin
ret void
}
"declare void @_ZdaPvSt11align_val_t(i8*, i64)\n"
"declare void @_ZdaPvSt11align_val_tRKSt9nothrow_t(i8*, i64, %struct*)\n"
"declare void @_ZdaPvj(i8*, i32)\n"
+ "declare void @_ZdaPvjSt11align_val_t(i8*, i32, i32)\n"
"declare void @_ZdaPvm(i8*, i64)\n"
+ "declare void @_ZdaPvmSt11align_val_t(i8*, i64, i64)\n"
"declare void @_ZdlPv(i8*)\n"
"declare void @_ZdlPvRKSt9nothrow_t(i8*, %struct*)\n"
"declare void @_ZdlPvSt11align_val_t(i8*, i64)\n"
"declare void @_ZdlPvSt11align_val_tRKSt9nothrow_t(i8*, i64, %struct*)\n"
"declare void @_ZdlPvj(i8*, i32)\n"
+ "declare void @_ZdlPvjSt11align_val_t(i8*, i32, i32)\n"
"declare void @_ZdlPvm(i8*, i64)\n"
+ "declare void @_ZdlPvmSt11align_val_t(i8*, i64, i64)\n"
"declare i8* @_Znaj(i32)\n"
"declare i8* @_ZnajRKSt9nothrow_t(i32, %struct*)\n"
"declare i8* @_ZnajSt11align_val_t(i32, i32)\n"