From: Eric Fiselier Date: Wed, 24 Oct 2018 23:47:04 +0000 (+0000) Subject: Revert "[SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03" X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1265ddef99aec50973caf26146f0eacf4ff5f76c;p=platform%2Fupstream%2Fllvm.git Revert "[SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03" This reverts commit 6f47cdd51341344c0e32630e19e72c94cd25f34e. llvm-svn: 345225 --- diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 03ec206..1349b5af 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 8bafaec..0000000 --- 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; -}