@@ -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-
25432533void 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