summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorErik Pilkington <erik.pilkington@gmail.com>2019-03-29 19:53:41 +0000
committerErik Pilkington <erik.pilkington@gmail.com>2019-03-29 19:53:41 +0000
commit233ff94212633f88b868f4ea1cd1887aa957ce41 (patch)
tree379114dba3fe2b6c1119d3dbb1626e1d50709edd /clang/lib/Sema/SemaChecking.cpp
parent67f74aceab191c5ecad2394edb267ecee49d872d (diff)
downloadbcm5719-llvm-233ff94212633f88b868f4ea1cd1887aa957ce41.tar.gz
bcm5719-llvm-233ff94212633f88b868f4ea1cd1887aa957ce41.zip
[Sema] Avoid sending a dependent expression to the constant evaluator.
Fixes llvm.org/PR41286 llvm-svn: 357304
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r--clang/lib/Sema/SemaChecking.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 024d78bc64e..5a9b3c3d13c 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -307,6 +307,9 @@ void Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD,
// - Analyze the format string of sprintf to see how much of buffer is used.
// - Evaluate strlen of strcpy arguments, use as object size.
+ if (TheCall->isValueDependent() || TheCall->isTypeDependent())
+ return;
+
unsigned BuiltinID = FD->getBuiltinID(/*ConsiderWrappers=*/true);
if (!BuiltinID)
return;
OpenPOWER on IntegriCloud