This reverts r254234, and adds a simple fix for the annoying case of use-after-free.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
| lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp | ||
|---|---|---|
| 257 ↗ | (On Diff #41893) | This looks like too big a hammer... Where is the pattern that breaks? |
| lib/Target/ARM/ARMAsmPrinter.cpp | ||
|---|---|---|
| 622 ↗ | (On Diff #41893) | Here we're passing a reference to a local std::string to the ATS, which stays alive after this function returns, and keeps a reference to the deleted string. |
| lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp | ||
| 257 ↗ | (On Diff #41893) | I'd argue that this was a bug that went unnoticed for a very long while... (see below) |
Comment Actions
LGTM. Thanks!
| lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp | ||
|---|---|---|
| 257 ↗ | (On Diff #41893) | Good point. If they need to keep the value until after the call, then they need to be copied every time. |