summaryrefslogtreecommitdiff
path: root/lib/Target/PTX/PTXISelLowering.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2011-09-28 04:08:02 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2011-09-28 04:08:02 +0000
commit8adae0c9406461dc078700ce1630832bda81f48f (patch)
treef1e22b305013ead61d0627bc7d9e0335c3e76552 /lib/Target/PTX/PTXISelLowering.cpp
parentadbf7b2c567d42fcb12cfd69c2692da03d34d384 (diff)
downloadllvm-8adae0c9406461dc078700ce1630832bda81f48f.tar.gz
llvm-8adae0c9406461dc078700ce1630832bda81f48f.tar.bz2
llvm-8adae0c9406461dc078700ce1630832bda81f48f.tar.xz
PTX: Pass param name strings per const reference.
The copies caused use-after-free bugs on std::string implementations without COW (i.e. anything but libstdc++) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140679 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PTX/PTXISelLowering.cpp')
-rw-r--r--lib/Target/PTX/PTXISelLowering.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Target/PTX/PTXISelLowering.cpp b/lib/Target/PTX/PTXISelLowering.cpp
index 7333e99cec..44733ac491 100644
--- a/lib/Target/PTX/PTXISelLowering.cpp
+++ b/lib/Target/PTX/PTXISelLowering.cpp
@@ -225,7 +225,7 @@ SDValue PTXTargetLowering::
unsigned ParamSize = Ins[i].VT.getStoreSizeInBits();
unsigned Param = PM.addArgumentParam(ParamSize);
- std::string ParamName = PM.getParamName(Param);
+ const std::string &ParamName = PM.getParamName(Param);
SDValue ParamValue = DAG.getTargetExternalSymbol(ParamName.c_str(),
MVT::Other);
SDValue ArgValue = DAG.getNode(PTXISD::LOAD_PARAM, dl, Ins[i].VT, Chain,
@@ -322,7 +322,7 @@ SDValue PTXTargetLowering::
if (Outs.size() == 1) {
unsigned ParamSize = OutVals[0].getValueType().getSizeInBits();
unsigned Param = PM.addReturnParam(ParamSize);
- std::string ParamName = PM.getParamName(Param);
+ const std::string &ParamName = PM.getParamName(Param);
SDValue ParamValue = DAG.getTargetExternalSymbol(ParamName.c_str(),
MVT::Other);
Chain = DAG.getNode(PTXISD::STORE_PARAM, dl, MVT::Other, Chain,
@@ -419,7 +419,7 @@ PTXTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
for (unsigned i = 0; i != OutVals.size(); ++i) {
unsigned Size = OutVals[i].getValueType().getSizeInBits();
unsigned Param = PM.addLocalParam(Size);
- std::string ParamName = PM.getParamName(Param);
+ const std::string &ParamName = PM.getParamName(Param);
SDValue ParamValue = DAG.getTargetExternalSymbol(ParamName.c_str(),
MVT::Other);
Chain = DAG.getNode(PTXISD::STORE_PARAM, dl, MVT::Other, Chain,
@@ -433,7 +433,7 @@ PTXTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
for (unsigned i = 0; i < Ins.size(); ++i) {
unsigned Size = Ins[i].VT.getStoreSizeInBits();
unsigned Param = PM.addLocalParam(Size);
- std::string ParamName = PM.getParamName(Param);
+ const std::string &ParamName = PM.getParamName(Param);
SDValue ParamValue = DAG.getTargetExternalSymbol(ParamName.c_str(),
MVT::Other);
Ops[i+1] = ParamValue;