@@ -537,24 +537,18 @@ if( LLVM_NATIVE_ARCH STREQUAL "host" )
537537 string (REGEX MATCH "^[^-]*" LLVM_NATIVE_ARCH ${LLVM_HOST_TRIPLE} )
538538endif ()
539539
540- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 8)
541-
542540if (LLVM_NATIVE_ARCH MATCHES "i[2-6]86" )
543541 set (LLVM_NATIVE_ARCH X86)
544- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
545542elseif (LLVM_NATIVE_ARCH STREQUAL "x86" )
546543 set (LLVM_NATIVE_ARCH X86)
547- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
548544elseif (LLVM_NATIVE_ARCH STREQUAL "amd64" )
549545 set (LLVM_NATIVE_ARCH X86)
550546elseif (LLVM_NATIVE_ARCH STREQUAL "x86_64" )
551547 set (LLVM_NATIVE_ARCH X86)
552548elseif (LLVM_NATIVE_ARCH MATCHES "sparc" )
553549 set (LLVM_NATIVE_ARCH Sparc)
554- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
555550elseif (LLVM_NATIVE_ARCH MATCHES "powerpc" )
556551 set (LLVM_NATIVE_ARCH PowerPC)
557- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
558552elseif (LLVM_NATIVE_ARCH MATCHES "ppc64le" )
559553 set (LLVM_NATIVE_ARCH PowerPC)
560554elseif (LLVM_NATIVE_ARCH MATCHES "aarch64" )
@@ -563,40 +557,30 @@ elseif (LLVM_NATIVE_ARCH MATCHES "arm64")
563557 set (LLVM_NATIVE_ARCH AArch64)
564558elseif (LLVM_NATIVE_ARCH MATCHES "arm" )
565559 set (LLVM_NATIVE_ARCH ARM)
566- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
567560elseif (LLVM_NATIVE_ARCH MATCHES "avr" )
568561 set (LLVM_NATIVE_ARCH AVR)
569- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 2)
570562elseif (LLVM_NATIVE_ARCH MATCHES "mips" )
571563 set (LLVM_NATIVE_ARCH Mips)
572- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
573564elseif (LLVM_NATIVE_ARCH MATCHES "xcore" )
574565 set (LLVM_NATIVE_ARCH XCore)
575- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
576566elseif (LLVM_NATIVE_ARCH MATCHES "msp430" )
577567 set (LLVM_NATIVE_ARCH MSP430)
578- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 2)
579568elseif (LLVM_NATIVE_ARCH MATCHES "hexagon" )
580569 set (LLVM_NATIVE_ARCH Hexagon)
581- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
582570elseif (LLVM_NATIVE_ARCH MATCHES "s390x" )
583571 set (LLVM_NATIVE_ARCH SystemZ)
584572elseif (LLVM_NATIVE_ARCH MATCHES "wasm32" )
585573 set (LLVM_NATIVE_ARCH WebAssembly)
586- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
587574elseif (LLVM_NATIVE_ARCH MATCHES "wasm64" )
588575 set (LLVM_NATIVE_ARCH WebAssembly)
589576elseif (LLVM_NATIVE_ARCH MATCHES "riscv32" )
590577 set (LLVM_NATIVE_ARCH RISCV)
591- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
592578elseif (LLVM_NATIVE_ARCH MATCHES "riscv64" )
593579 set (LLVM_NATIVE_ARCH RISCV)
594580elseif (LLVM_NATIVE_ARCH STREQUAL "m68k" )
595581 set (LLVM_NATIVE_ARCH M68k)
596- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
597582elseif (LLVM_NATIVE_ARCH MATCHES "loongarch32" )
598583 set (LLVM_NATIVE_ARCH LoongArch)
599- set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T 4)
600584elseif (LLVM_NATIVE_ARCH MATCHES "loongarch64" )
601585 set (LLVM_NATIVE_ARCH LoongArch)
602586else ()
@@ -634,6 +618,21 @@ else ()
634618 endif ()
635619endif ()
636620
621+ foreach (i IN ITEMS 8 4)
622+ try_compile (SIZEOF_UINTPTR_T_IS_${i}
623+ SOURCE_FROM_CONTENT
624+ "test-sizeof-uintptr_t.cpp"
625+ "#include <cstdint>\n
626+ static_assert(sizeof(uintptr_t) == ${i} ); int main(){}"
627+ CXX_STANDARD 17
628+ LOG_DESCRIPTION "testing sizeof(uintptr_t)" )
629+
630+ if (SIZEOF_UINTPTR_T_IS_${i} )
631+ set (LLVM_NATIVE_ARCH_SIZEOF_UINTPTR_T ${i} )
632+ break ()
633+ endif ()
634+ endforeach ()
635+
637636if ( MSVC )
638637 set (SHLIBEXT ".lib" )
639638 set (stricmp "_stricmp" )
0 commit comments