llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
29.01k stars 11.95k forks source link

MCInst.h:70: unsigned int llvm::MCOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed. #68536

Open nvinson opened 1 year ago

nvinson commented 1 year ago

When building 32-bit llvm-16.0.6 with clang/llvm-17.0.2 on a 64-bit system. ld.lld segmentation faults with the error message: MCInst.h:70: unsigned int llvm::MCOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed.

Full stack trace:

Stack dump:
0.  Running pass 'Function Pass Manager' on module 'var/tmp/portage/sys-devel/llvm-16.0.6/work/llvm_build-abi_x86_32.x86/lib/libLLVMPowerPCCodeGen.a(PPCISelLowering.cpp.o at 2658764)'.
1.  Running pass 'X86 Assembly Printer' on function '@_ZL6CC_AIXjN4llvm3MVTES0_NS_11CCValAssign7LocInfoENS_3ISD10ArgFlagsTyERNS_7CCStateE'
 #0 0x00007f8dc172e656 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4b2e656)
 #1 0x00007f8dc172bc30 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4b2bc30)
 #2 0x00007f8dc172ef94 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4b2ef94)
 #3 0x00007f8dbc67b650 (/lib64/libc.so.6+0x39650)
 #4 0x00007f8dbc6c9ccc __pthread_kill_implementation /var/tmp/portage/sys-libs/glibc-2.38-r5/work/glibc-2.38/nptl/pthread_kill.c:44:76
 #5 0x00007f8dbc67b5b2 gsignal /var/tmp/portage/sys-libs/glibc-2.38-r5/work/glibc-2.38/signal/../sysdeps/posix/raise.c:27:6
 #6 0x00007f8dbc6644ed abort /var/tmp/portage/sys-libs/glibc-2.38-r5/work/glibc-2.38/stdlib/abort.c:81:7
 #7 0x00007f8dbc664415 _nl_load_domain /var/tmp/portage/sys-libs/glibc-2.38-r5/work/glibc-2.38/intl/loadmsgcat.c:1177:9
 #8 0x00007f8dbc674132 (/lib64/libc.so.6+0x32132)
 #9 0x00007f8dc571da21 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x8b1da21)
#10 0x00007f8dc571a670 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x8b1a670)
#11 0x00007f8dc3a8b63a llvm::MCELFStreamer::emitInstToData(llvm::MCInst const&, llvm::MCSubtargetInfo const&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6e8b63a)
#12 0x00007f8dc3aa4076 llvm::MCObjectStreamer::emitInstruction(llvm::MCInst const&, llvm::MCSubtargetInfo const&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6ea4076)
#13 0x00007f8dc566560a (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x8a6560a)
#14 0x00007f8dc254049a llvm::AsmPrinter::emitFunctionBody() (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x594049a)
#15 0x00007f8dc530d180 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x870d180)
#16 0x00007f8dc1d32200 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x5132200)
#17 0x00007f8dc191ef20 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4d1ef20)
#18 0x00007f8dc192a182 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4d2a182)
#19 0x00007f8dc191fc00 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4d1fc00)
#20 0x00007f8dc3a1398a (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6e1398a)
#21 0x00007f8dc3a154e7 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6e154e7)
#22 0x00007f8dc3a15006 llvm::lto::thinBackend(llvm::lto::Config const&, unsigned int, std::function<llvm::Expected<std::unique_ptr<llvm::CachedFileStream, std::default_delete<llvm::CachedFileStream>>> (unsigned int, llvm::Twine const&)>, llvm::Module&, llvm::ModuleSummaryIndex const&, llvm::StringMap<std::unordered_set<unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<unsigned long>>, llvm::MallocAllocator> const&, llvm::DenseMap<unsigned long, llvm::GlobalValueSummary*, llvm::DenseMapInfo<unsigned long, void>, llvm::detail::DenseMapPair<unsigned long, llvm::GlobalValueSummary*>> const&, llvm::MapVector<llvm::StringRef, llvm::BitcodeModule, llvm::DenseMap<llvm::StringRef, unsigned int, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, unsigned int>>, llvm::SmallVector<std::pair<llvm::StringRef, llvm::BitcodeModule>, 0u>>*, std::vector<unsigned char, std::allocator<unsigned char>> const&) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6e15006)
#23 0x00007f8dc3a0b0bf (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6e0b0bf)
#24 0x00007f8dc3a09f4d (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x6e09f4d)
#25 0x00007f8dc15f85a4 (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x49f85a4)
#26 0x00007f8dc16be915 llvm::ThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4abe915)
#27 0x00007f8dc16bfadd (/usr/lib/llvm/17/bin/../lib64/libLLVM-17.so+0x4abfadd)
#28 0x00007f8dbc6c7f99 start_thread /var/tmp/portage/sys-libs/glibc-2.38-r5/work/glibc-2.38/nptl/pthread_create.c:444:8
#29 0x00007f8dbc738ea8 clone3 /var/tmp/portage/sys-libs/glibc-2.38-r5/work/glibc-2.38/misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:80:0

Tarball with libraries and commands: https://drive.google.com/file/d/1gwG-XQjmtJjOawqvKkcWbGgYZCR3HIv_/view?usp=drive_link

Including Gentoo emerge --info output as it usually contains useful information:

Portage 3.0.52 (python 3.11.6-final-0, default/linux/amd64/17.1/desktop, gcc-13, glibc-2.38-r5, 6.5.5-gentoo x86_64)
=================================================================
System uname: Linux-6.5.5-gentoo-x86_64-Intel-R-_Core-TM-_i7-4771_CPU_@_3.50GHz-with-glibc2.38
KiB Mem:    32553220 total,  17295836 free
KiB Swap:    2097148 total,   2097148 free
Timestamp of repository gentoo: Sun, 08 Oct 2023 07:31:56 +0000
Head commit of repository gentoo: 188a7d65706ea7e31e62475732bfc0535ef7100d

Timestamp of repository brother-overlay: Sun, 01 Oct 2023 07:32:50 +0000
Head commit of repository brother-overlay: 4832a63f656b6d80fa0b91081179ba96a4ca537f

Head commit of repository magpie: dab2e96d48b44bac1bbdcab3e52685145a1f5ba3

sh bash 5.2_p15-r6
ld GNU ld (Gentoo 2.41 p2) 2.41.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p15-r6::gentoo
dev-java/java-config:      2.3.1-r1::gentoo
dev-lang/perl:             5.38.0-r1::gentoo
dev-lang/python:           3.10.13::gentoo, 3.11.6::gentoo, 3.12.0::gentoo
dev-lang/rust:             1.72.0-r1::gentoo
dev-util/cmake:            3.27.7::gentoo
dev-util/meson:            1.2.2-r1::gentoo
sys-apps/baselayout:       2.14::gentoo
sys-apps/openrc:           0.50-r1::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-devel/autoconf:        2.13-r8::gentoo, 2.71-r7::gentoo
sys-devel/automake:        1.16.5-r1::gentoo
sys-devel/binutils:        2.41-r2::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           16.0.6::gentoo, 17.0.2::gentoo
sys-devel/gcc:             13.2.1_p20230826::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/libtool:         2.4.7-r1::gentoo
sys-devel/lld:             16.0.6::gentoo, 17.0.2::gentoo
sys-devel/llvm:            16.0.6::gentoo, 17.0.2-r1::gentoo
sys-devel/make:            4.4.1-r1::gentoo
sys-kernel/linux-headers:  6.5-r1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.38-r5::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    priority: -1000
    volatile: False
    sync-git-verify-commit-signature: true

brother-overlay
    location: /var/db/repos/brother-overlay
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/brother-overlay.git
    masters: gentoo
    volatile: False

magpie
    location: /var/db/repos/magpie
    sync-type: git
    sync-uri: https://github.com/nvinson/magpie.git
    masters: gentoo
    volatile: False

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
AR="llvm-ar"
CBUILD="x86_64-pc-linux-gnu"
CC="clang"
CFLAGS="-march=native -O3 -pipe -flto=thin"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/brother/scanner/brscan4/brsanenetdevice4.cfg /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXX="clang++"
CXXFLAGS="-march=native -O3 -pipe -flto=thin"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS="--quiet-build"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O3 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O3 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind"
LEX="flex"
MAKEOPTS="-j8"
NM="llvm-nm"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
RANLIB="llvm-ranlib"
SHELL="/bin/zsh"
USE="X a52 aac acl acpi alsa amd64 branding bzip2 cairo cdda cdr clang cleartype cli corefonts crypt cups dbus dri dts dvd dvdr elogind encode exif flac fortran gdbm gif glamor gpm gtk gui iconv icu ipv6 jpeg lcms libnotify libtirpc lto mad mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds qt5 readline sdl seccomp sound spell split-usr ssl startup-notification svg test-rust theora tiff truetype udev udisks unicode upower usb vaapi vorbis vpx vulkan wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en-US en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, ARFLAGS, AS, ASFLAGS, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

This was originally reported to Gentoo. Gentoo bug ID 914531

thesamesam commented 1 year ago

I can reproduce w/ that tarball with lld @response.txt.