Skip to content

Commit 8ffd142

Browse files
authored
remove some __gshared from elfobj.d (#22994)
1 parent ac81445 commit 8ffd142

2 files changed

Lines changed: 16 additions & 22 deletions

File tree

compiler/src/dmd/backend/arm/disasmarm.d

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1616,7 +1616,7 @@ void disassemble(uint c) @trusted
16161616
if (imm3)
16171617
{
16181618
size_t n = snprintf(P5buf3.ptr, P5buf3.length, ((imm3 < 10) ? "LSL #%d" : "LSL #0x%X"), imm3);
1619-
assert(n <= P5buf3.length);
1619+
assert(n < P5buf3.length);
16201620
p5 = P5buf3[0 .. n];
16211621
}
16221622
}
@@ -2908,7 +2908,7 @@ const(char)[] labeltostring(ulong w)
29082908
__gshared char[2 + w.sizeof * 3 + 1] EA;
29092909

29102910
const n = snprintf(EA.ptr, EA.length, ((w < 10) ? "%lld" : "0x%llX"), w);
2911-
assert(n <= EA.length);
2911+
assert(n < EA.length);
29122912
return EA[0 .. n];
29132913
}
29142914

@@ -2918,7 +2918,7 @@ const(char)[] indexString(uint reg)
29182918
__gshared char[1 + 3 + 1 + 1] EA;
29192919

29202920
const n = snprintf(EA.ptr, EA.length, "[%s]", regString(1, reg).ptr);
2921-
assert(n <= EA.length);
2921+
assert(n < EA.length);
29222922
return EA[0 .. n];
29232923
}
29242924

compiler/src/dmd/backend/elfobj.d

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,14 +2039,6 @@ static if (0)
20392039
}
20402040
}
20412041

2042-
private char* unsstr(uint value)
2043-
{
2044-
__gshared char[64] buffer = void;
2045-
2046-
snprintf(buffer.ptr, buffer.length, "%d", value);
2047-
return buffer.ptr;
2048-
}
2049-
20502042
/*******************************
20512043
* Mangle a name.
20522044
* Params:
@@ -2097,14 +2089,14 @@ private char[] obj_mangle2(ref Symbol s, char[] dest)
20972089
bool cond = tyfunc(s.ty()) && !variadic(s.Stype);
20982090
if (cond)
20992091
{
2100-
char* pstr = unsstr(type_paramsize(s.Stype));
2101-
size_t pstrlen = strlen(pstr);
2102-
size_t dlen = len + 1 + pstrlen;
2103-
2092+
char[64] buffer = void;
2093+
int n = snprintf(buffer.ptr, buffer.length, "%u", type_paramsize(s.Stype));
2094+
assert(n < buffer.length);
2095+
size_t dlen = len + 1 + n;
21042096
setLength(dest, dlen);
21052097
memcpy(dest.ptr,name,len);
21062098
dest[len] = '@';
2107-
memcpy(dest.ptr + 1 + len, pstr, pstrlen + 1);
2099+
memcpy(dest.ptr + len + 1, buffer.ptr, n + 1);
21082100
len = dlen;
21092101
break;
21102102
}
@@ -2530,16 +2522,14 @@ static if (0)
25302522

25312523
/*******************************
25322524
* Output a relocation entry for a segment
2533-
* Input:
2525+
* Params:
25342526
* seg = where the address is going
25352527
* offset = offset within seg
25362528
* type = ELF relocation type R_ARCH_XXXX
25372529
* index = Related symbol table index
25382530
* val = addend or displacement from address
25392531
*/
25402532

2541-
__gshared int relcnt=0;
2542-
25432533
void ElfObj_addrel(int seg, targ_size_t offset, uint type,
25442534
IDXSYM symidx, targ_size_t val)
25452535
{
@@ -2548,9 +2538,13 @@ void ElfObj_addrel(int seg, targ_size_t offset, uint type,
25482538
IDXSEC secidx;
25492539

25502540
//assert(val == 0);
2551-
relcnt++;
2552-
//dbg_printf("%d-ElfObj_addrel(seg %d,offset x%x,type x%x,symidx %d,val %d)\n",
2553-
//relcnt,seg, offset, type, symidx,val);
2541+
static if (0)
2542+
{
2543+
__gshared int relcnt = 0;
2544+
relcnt++;
2545+
printf("%d-ElfObj_addrel(seg %d,offset x%x,type x%x,symidx %d,val %d)\n",
2546+
relcnt, seg, offset, type, symidx,val);
2547+
}
25542548

25552549
assert(seg >= 0 && seg < SegData.length);
25562550
segdata = SegData[seg];

0 commit comments

Comments
 (0)