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:
Eric Fiselier 2018-10-24 23:47:04 +00:00
parent 60fddac907
commit 1265ddef99
2 changed files with 2 additions and 24 deletions

View File

@ -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.

View File

@ -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;
}