boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

abtol-long-accumulator.after (425B)


      1   char const *s = p[0];
      2   /* Use a `long` accumulator so values that don't fit in 32-bit signed
      3    * (e.g. 0x80200000 — riscv64's OpenSBI kernel base) don't overflow
      4    * to a sign-extended negative.  Affects strtol/strtoul/strtoull,
      5    * which all bottom out in this routine.  Without this, tcc3 mishandles
      6    * `-Wl,-Ttext=0x80200000` and emits an ELF with vaddr=0xffffffff80200000.
      7    */
      8   long i = 0;
      9   int sign_p = 0;