summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-01-09 23:46:59 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-01-09 23:46:59 +0000
commit7f21bd74b8655a6fbe61ddfc2322b7bc8c302339 (patch)
tree6e914b958a1c21cff1b454865e6ab711018db715 /clang/lib/Sema
parentedb4a8a1282ee3935e92e364ab99d0d16ae45238 (diff)
downloadbcm5719-llvm-7f21bd74b8655a6fbe61ddfc2322b7bc8c302339.tar.gz
bcm5719-llvm-7f21bd74b8655a6fbe61ddfc2322b7bc8c302339.zip
Don't crash with -Wlarge-by-value-copy and a dependent type. PR11726.
llvm-svn: 147812
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index b541e7d9e71..4a804bfcff2 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -6777,7 +6777,7 @@ void Sema::DiagnoseSizeOfParametersAndReturnValue(ParmVarDecl * const *Param,
// Warn if the return value is pass-by-value and larger than the specified
// threshold.
- if (ReturnTy.isPODType(Context)) {
+ if (!ReturnTy->isDependentType() && ReturnTy.isPODType(Context)) {
unsigned Size = Context.getTypeSizeInChars(ReturnTy).getQuantity();
if (Size > LangOpts.NumLargeByValueCopy)
Diag(D->getLocation(), diag::warn_return_value_size)
@@ -6788,7 +6788,7 @@ void Sema::DiagnoseSizeOfParametersAndReturnValue(ParmVarDecl * const *Param,
// threshold.
for (; Param != ParamEnd; ++Param) {
QualType T = (*Param)->getType();
- if (!T.isPODType(Context))
+ if (T->isDependentType() || !T.isPODType(Context))
continue;
unsigned Size = Context.getTypeSizeInChars(T).getQuantity();
if (Size > LangOpts.NumLargeByValueCopy)
OpenPOWER on IntegriCloud