diff options
author | Derek Schuff <dschuff@chromium.org> | 2013-02-15 14:54:04 -0800 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2013-02-15 14:54:04 -0800 |
commit | de82c04bfc33b44fc650cf7f330dbf26992faf8b (patch) | |
tree | d06a2ef7d67d0b97551b9384dd361e6e053f82ec /lib/MC/MCObjectStreamer.cpp | |
parent | 9e1067bd3646621b7691cc3947ca0bd9f087a0af (diff) |
Cherry-pick r175316 from upstream
Diffstat (limited to 'lib/MC/MCObjectStreamer.cpp')
-rw-r--r-- | lib/MC/MCObjectStreamer.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/MC/MCObjectStreamer.cpp b/lib/MC/MCObjectStreamer.cpp index 471170491e..8130c9b532 100644 --- a/lib/MC/MCObjectStreamer.cpp +++ b/lib/MC/MCObjectStreamer.cpp @@ -62,7 +62,9 @@ MCFragment *MCObjectStreamer::getCurrentFragment() const { MCDataFragment *MCObjectStreamer::getOrCreateDataFragment() const { MCDataFragment *F = dyn_cast_or_null<MCDataFragment>(getCurrentFragment()); - if (!F) + // When bundling is enabled, we don't want to add data to a fragment that + // already has instructions (see MCELFStreamer::EmitInstToData for details) + if (!F || (Assembler->isBundlingEnabled() && F->hasInstructions())) F = new MCDataFragment(getCurrentSectionData()); return F; } |