diff options
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 5 | ||||
-rw-r--r-- | clang/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp | 21 |
2 files changed, 2 insertions, 24 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 03ec20601c9..1349b5af6aa 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -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. diff --git a/clang/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp b/clang/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp deleted file mode 100644 index 8bafaec26d3..00000000000 --- a/clang/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp +++ /dev/null @@ -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; -} |