diff options
author | Erik Pilkington <erik.pilkington@gmail.com> | 2019-03-19 20:44:18 +0000 |
---|---|---|
committer | Erik Pilkington <erik.pilkington@gmail.com> | 2019-03-19 20:44:18 +0000 |
commit | 02d5fb1a6efb96706ca781c6a50624d0e0d7b842 (patch) | |
tree | 99c184fa2a4e468d05d7bb77864d19d14b2a07c4 /clang/lib/CodeGen/CGCall.cpp | |
parent | 1663c9466f37ae123dad66dc863791d14bdf09dc (diff) | |
download | bcm5719-llvm-02d5fb1a6efb96706ca781c6a50624d0e0d7b842.tar.gz bcm5719-llvm-02d5fb1a6efb96706ca781c6a50624d0e0d7b842.zip |
Add a spelling of pass_object_size that uses __builtin_dynamic_object_size
The attribute pass_dynamic_object_size(n) behaves exactly like
pass_object_size(n), but instead of evaluating __builtin_object_size on calls,
it evaluates __builtin_dynamic_object_size, which has the potential to produce
runtime code when the object size can't be determined statically.
Differential revision: https://reviews.llvm.org/D58757
llvm-svn: 356515
Diffstat (limited to 'clang/lib/CodeGen/CGCall.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGCall.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index 626578ad84f..73a87a4933d 100644 --- a/clang/lib/CodeGen/CGCall.cpp +++ b/clang/lib/CodeGen/CGCall.cpp @@ -3452,7 +3452,7 @@ void CodeGenFunction::EmitCallArgs( assert(EmittedArg.getScalarVal() && "We emitted nothing for the arg?"); llvm::Value *V = evaluateOrEmitBuiltinObjectSize(Arg, PS->getType(), T, EmittedArg.getScalarVal(), - /*IsDynamic=*/false); + PS->isDynamic()); Args.add(RValue::get(V), SizeTy); // If we're emitting args in reverse, be sure to do so with // pass_object_size, as well. |