summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorLarisse Voufo <lvoufo@google.com>2013-06-18 03:08:53 +0000
committerLarisse Voufo <lvoufo@google.com>2013-06-18 03:08:53 +0000
commitbf4aa573989f67b3d371c1808f86caef6dbc74f2 (patch)
tree0ae339361bbf1b177d391260cc54f9b2e8a4afe6 /clang
parent1fe2a8c87ee6d18682ffa6d8a07e2ed30bfb6d35 (diff)
downloadbcm5719-llvm-bf4aa573989f67b3d371c1808f86caef6dbc74f2.tar.gz
bcm5719-llvm-bf4aa573989f67b3d371c1808f86caef6dbc74f2.zip
contextual conversion fix: C++98 compatibility warning.
llvm-svn: 184167
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index d723c1fe77d..a6b6e36bb7d 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -1194,7 +1194,7 @@ Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
// enumeration type, or a class type for which a single non-explicit
// conversion function to integral or unscoped enumeration type exists.
// C++1y [expr.new]p6: The expression [...] is implicitly converted to
- // std::size_t. (FIXME)
+ // std::size_t.
if (ArraySize && !ArraySize->isTypeDependent()) {
ExprResult ConvertedSize;
if (getLangOpts().CPlusPlus1y) {
@@ -1204,7 +1204,8 @@ Sema::BuildCXXNew(SourceRange Range, bool UseGlobal,
ConvertedSize = PerformImplicitConversion(ArraySize, Context.getSizeType(),
AA_Converting);
- if (!isSFINAEContext())
+ if (!ConvertedSize.isInvalid() &&
+ ArraySize->getType()->getAs<RecordType>())
// Diagnose the compatibility of this conversion.
Diag(StartLoc, diag::warn_cxx98_compat_array_size_conversion)
<< ArraySize->getType() << 0 << "'size_t'";
OpenPOWER on IntegriCloud