mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
Merge pull request #7253 from rainers/lazy_debugS
fix issue 17944: MSCOFF: do not write empty debug$S section merged-on-behalf-of: Walter Bright <WalterBright@users.noreply.github.com>
This commit is contained in:
commit
775fce733b
1 changed files with 12 additions and 12 deletions
|
@ -338,6 +338,7 @@ MsCoffObj *MsCoffObj::init(Outbuffer *objbuf, const char *filename, const char *
|
|||
|
||||
segidx_pdata = UNKNOWN;
|
||||
segidx_xdata = UNKNOWN;
|
||||
segidx_debugS = UNKNOWN;
|
||||
|
||||
// Initialize buffers
|
||||
|
||||
|
@ -381,10 +382,6 @@ MsCoffObj *MsCoffObj::init(Outbuffer *objbuf, const char *filename, const char *
|
|||
|
||||
int alignText = I64 ? IMAGE_SCN_ALIGN_16BYTES : IMAGE_SCN_ALIGN_8BYTES;
|
||||
int alignData = IMAGE_SCN_ALIGN_16BYTES;
|
||||
addScnhdr(".debug$S", IMAGE_SCN_CNT_INITIALIZED_DATA |
|
||||
IMAGE_SCN_ALIGN_1BYTES |
|
||||
IMAGE_SCN_MEM_READ |
|
||||
IMAGE_SCN_MEM_DISCARDABLE);
|
||||
addScnhdr(".data$B", IMAGE_SCN_CNT_INITIALIZED_DATA |
|
||||
alignData |
|
||||
IMAGE_SCN_MEM_READ |
|
||||
|
@ -403,11 +400,10 @@ MsCoffObj *MsCoffObj::init(Outbuffer *objbuf, const char *filename, const char *
|
|||
|
||||
seg_count = 0;
|
||||
|
||||
#define SHI_DEBUGS 1
|
||||
#define SHI_DATA 2
|
||||
#define SHI_TEXT 3
|
||||
#define SHI_UDATA 4
|
||||
#define SHI_CDATA 5
|
||||
#define SHI_DATA 1
|
||||
#define SHI_TEXT 2
|
||||
#define SHI_UDATA 3
|
||||
#define SHI_CDATA 4
|
||||
|
||||
getsegment2(SHI_TEXT);
|
||||
assert(SegData[CODE]->SDseg == CODE);
|
||||
|
@ -421,8 +417,6 @@ MsCoffObj *MsCoffObj::init(Outbuffer *objbuf, const char *filename, const char *
|
|||
getsegment2(SHI_UDATA);
|
||||
assert(SegData[UDATA]->SDseg == UDATA);
|
||||
|
||||
segidx_debugS = getsegment2(SHI_DEBUGS);
|
||||
|
||||
if (config.fulltypes)
|
||||
cv8_initfile(filename);
|
||||
assert(objbuf->size() == 0);
|
||||
|
@ -1631,7 +1625,13 @@ segidx_t MsCoffObj::seg_xdata_comdat(symbol *sfunc)
|
|||
|
||||
segidx_t MsCoffObj::seg_debugS()
|
||||
{
|
||||
// Probably should generate this lazilly, too.
|
||||
if (segidx_debugS == UNKNOWN)
|
||||
{
|
||||
segidx_debugS = MsCoffObj::getsegment(".debug$S", IMAGE_SCN_CNT_INITIALIZED_DATA |
|
||||
IMAGE_SCN_ALIGN_1BYTES |
|
||||
IMAGE_SCN_MEM_READ |
|
||||
IMAGE_SCN_MEM_DISCARDABLE);
|
||||
}
|
||||
return segidx_debugS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue