r345225 - Revert "[SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03"
Eric Fiselier via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 24 16:47:04 PDT 2018
Author: ericwf
Date: Wed Oct 24 16:47:04 2018
New Revision: 345225
URL: http://llvm.org/viewvc/llvm-project?rev=345225&view=rev
Log:
Revert "[SemaCXX] Unconfuse Clang when std::align_val_t is unscoped in C++03"
This reverts commit 6f47cdd51341344c0e32630e19e72c94cd25f34e.
Removed:
cfe/trunk/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp
Modified:
cfe/trunk/lib/Sema/SemaExprCXX.cpp
Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=345225&r1=345224&r2=345225&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Wed Oct 24 16:47:04 2018
@@ -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.
Removed: cfe/trunk/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp?rev=345224&view=auto
==============================================================================
--- cfe/trunk/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp (original)
+++ cfe/trunk/test/SemaCXX/cxx03-aligned-allocation-unscoped-enum.cpp (removed)
@@ -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;
-}
More information about the cfe-commits
mailing list