diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-17 15:41:33 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-17 17:33:17 +0530 |
| commit | 34ab88e30b8b61e084af4fd3accbeb1e90ef8a50 (patch) | |
| tree | 4738d9f2e8bba52c871c2b7228adcace7053321c /src/rustllvm/ExecutionEngineWrapper.cpp | |
| parent | 4a7eed1e01c5961199e8a125ef80d133c9c0f3d4 (diff) | |
| parent | 4808561c45df77b6a7f8721f22b2f1e324cbeb3d (diff) | |
| download | rust-34ab88e30b8b61e084af4fd3accbeb1e90ef8a50.tar.gz rust-34ab88e30b8b61e084af4fd3accbeb1e90ef8a50.zip | |
Rollup merge of #22385 - dotdash:slice_by_val_copy, r=nikomatsakis
When matching against strings/slices, we call the comparison function for strings, which takes two string slices by value. The slices are passed in memory, and currently we just pass in a pointer to the original slice. That can cause misoptimizations because we emit a call to llvm.lifetime.end for all by-value arguments at the end of a function, which in this case marks the original slice as dead. So we need to properly create copies of the slices to pass them to the comparison function. Fixes #22008
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
