diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2013-06-27 14:35:03 +0000 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2013-06-27 14:35:03 +0000 |
commit | b02f1e9a6bc332ebd77571fdffcdc44d77e76b31 (patch) | |
tree | c9620873d1ad7501cb644af9427c68adc6c50f32 /include/llvm | |
parent | 31d2f08f8893f38d2d7293195f3707edfefbeeb6 (diff) | |
download | external_llvm-b02f1e9a6bc332ebd77571fdffcdc44d77e76b31.zip external_llvm-b02f1e9a6bc332ebd77571fdffcdc44d77e76b31.tar.gz external_llvm-b02f1e9a6bc332ebd77571fdffcdc44d77e76b31.tar.bz2 |
Use MCFillFragment for zero-initialized data.
It fixes PR16338 (ICE when compiling very large two-dimensional array).
Differential Revision: http://llvm-reviews.chandlerc.com/D1043
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185080 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/MC/MCObjectStreamer.h | 1 | ||||
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 8 |
2 files changed, 4 insertions, 5 deletions
diff --git a/include/llvm/MC/MCObjectStreamer.h b/include/llvm/MC/MCObjectStreamer.h index 5941993..851a0e0 100644 --- a/include/llvm/MC/MCObjectStreamer.h +++ b/include/llvm/MC/MCObjectStreamer.h @@ -116,6 +116,7 @@ public: virtual void EmitGPRel64Value(const MCExpr *Value); virtual void EmitFill(uint64_t NumBytes, uint8_t FillValue, unsigned AddrSpace = 0); + virtual void EmitZeros(uint64_t NumBytes, unsigned AddrSpace = 0); virtual void FinishImpl(); /// @} diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 2cab481..34970b1 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -472,11 +472,9 @@ namespace llvm { virtual void EmitFill(uint64_t NumBytes, uint8_t FillValue, unsigned AddrSpace = 0); - /// EmitZeros - Emit NumBytes worth of zeros. This is a convenience - /// function that just wraps EmitFill. - void EmitZeros(uint64_t NumBytes, unsigned AddrSpace = 0) { - EmitFill(NumBytes, 0, AddrSpace); - } + /// \brief EmitZeros - Emit NumBytes worth of zeros. + /// This function properly handles data in virtual sections. + virtual void EmitZeros(uint64_t NumBytes, unsigned AddrSpace = 0); /// EmitValueToAlignment - Emit some number of copies of @p Value until /// the byte alignment @p ByteAlignment is reached. |