forked from OSchip/llvm-project
Revert "[SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03"
This reverts commit 6f47cdd51341344c0e32630e19e72c94cd25f34e. llvm-svn: 345225
This commit is contained in:
parent
60fddac907
commit
1265ddef99
|
@ -1515,9 +1515,8 @@ namespace {
|
|||
if (FD->getNumParams() == NumBaseParams + 2)
|
||||
HasAlignValT = HasSizeT = true;
|
||||
else if (FD->getNumParams() == NumBaseParams + 1) {
|
||||
QualType ParamTy = FD->getParamDecl(NumBaseParams)->getType();
|
||||
HasAlignValT = ParamTy->isAlignValT();
|
||||
HasSizeT = !HasAlignValT && ParamTy->isIntegerType();
|
||||
HasSizeT = FD->getParamDecl(NumBaseParams)->getType()->isIntegerType();
|
||||
HasAlignValT = !HasSizeT;
|
||||
}
|
||||
|
||||
// In CUDA, determine how much we'd like / dislike to call this.
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
// RUN: %clang_cc1 -std=c++03 %s -faligned-allocation \
|
||||
// RUN: -emit-llvm -o - | FileCheck %s
|
||||
|
||||
// Ensure Clang doesn't confuse std::align_val_t with the sized deallocation
|
||||
// parameter when the enum type is unscoped. Libc++ does this in C++03 in order
|
||||
// to support aligned allocation in that dialect.
|
||||
|
||||
using size_t = __decltype(sizeof(0));
|
||||
|
||||
namespace std {
|
||||
enum align_val_t { zero = size_t(0),
|
||||
max = size_t(-1) };
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define void @_Z1fPi(
|
||||
void f(int *p) {
|
||||
// CHECK-NOT: call void @_ZdlPvSt11align_val_t(
|
||||
// CHECK: call void @_ZdlPv(
|
||||
// CHECK: ret void
|
||||
delete p;
|
||||
}
|
Loading…
Reference in New Issue