[all-commits] [llvm/llvm-project] 32927c: [compiler-rt] Fix definition of `usize` on 32-bit ...

Alexander Richardson via All-commits all-commits at lists.llvm.org
Sun Sep 1 01:12:20 PDT 2024


  Branch: refs/heads/release/19.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 32927ca57e805681fa93ed913c0f0d3c075563b7
      https://github.com/llvm/llvm-project/commit/32927ca57e805681fa93ed913c0f0d3c075563b7
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2024-09-01 (Sun, 01 Sep 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h

  Log Message:
  -----------
  [compiler-rt] Fix definition of `usize` on 32-bit Windows

32-bit Windows uses `unsigned int` for uintptr_t and size_t.
Commit 18e06e3e2f3d47433e1ed323b8725c76035fc1ac changed uptr to
unsigned long, so it no longer matches the real size_t/uintptr_t and
therefore the current definition of usize result in:
`error C2821: first formal parameter to 'operator new' must be 'size_t'`

However, the real problem is that uptr is wrong to work around the fact
that we have local SIZE_T and SSIZE_T typedefs that trample on the
basetsd.h definitions of the same name and therefore need to match
exactly. Unlike size_t/ssize_t the uppercase ones always use unsigned
long (even on 32-bit).

This commit works around the build breakage by keeping the existing
definitions of uptr/sptr and just changing usize. A follow-up change
will attempt to fix this properly.

Fixes: https://github.com/llvm/llvm-project/issues/101998

Reviewed By: mstorsjo

Pull Request: https://github.com/llvm/llvm-project/pull/106151

(cherry picked from commit bb27dd853a713866c025a94ead8f03a1e25d1b6e)



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list