Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

llvm-ld crashing when linking FreeBSD kernel #5445

Closed Quuxplusone closed 13 years ago

Quuxplusone commented 15 years ago
Bugzilla Link PR4943
Status RESOLVED DUPLICATE of bug 4496
Importance P normal
Reported by Roman Divacky (rdivacky@freebsd.org)
Reported on 2009-09-10 09:29:05 -0700
Last modified on 2011-07-11 10:32:04 -0700
Version trunk
Hardware PC Linux
CC anton@korobeynikov.info, clattner@nondot.org, daniel@zuster.org, llvm-bugs@lists.llvm.org, nlewycky@google.com, pawel.worach@gmail.com
Fixed by commit(s)
Attachments sys_pipe.o (135764 bytes, application/x-object)
sys_process.o (117792 bytes, application/x-object)
sys_socket.o (48636 bytes, application/x-object)
Blocks
Blocked by
See also
I am getting this when I try to link FreeBSD kernel:

Assertion failed: (*PrevPtr == this && "List invariant broken"), function
RemoveFromUseList, file Value.cpp, line 458.

I can provide tarball with all the .o files and exact command line but it's
huge.
Quuxplusone commented 15 years ago

Please try to find a reduced test case, we can't reproduce it from this alone. :)

Quuxplusone commented 15 years ago

Yeah, we definitely need more info than this.

Quuxplusone commented 15 years ago
sorry for not providing any info

this is the command line:

Assertion failed: (*PrevPtr == this && "List invariant broken"), function
RemoveFromUseList, file Value.cpp, line 458.
Stack dump:
0.      Program arguments: llvm-ld -native -strip-all -export-dynamic -o
kernel.debug locore.o dsfield.o dsinit.o dsmethod.o dsmthdat.o dsobject.o
dsopcode.o dsutils.o dswexec.o dswload.o dswscope.o dswstate.o evevent.o
evgpe.o evgpeblk.o evmisc.o evregion.o evrgnini.o evsci.o evxface.o evxfevnt.o
evxfregn.o exconfig.o exconvrt.o excreate.o exdump.o exfield.o exfldio.o
exmisc.o exmutex.o exnames.o exoparg1.o exoparg2.o exoparg3.o exoparg6.o
exprep.o exregion.o exresnte.o exresolv.o exresop.o exstore.o exstoren.o
exstorob.o exsystem.o exutils.o hwacpi.o hwgpe.o hwregs.o hwsleep.o hwtimer.o
hwvalid.o hwxface.o nsaccess.o nsalloc.o nsdump.o nseval.o nsinit.o nsload.o
nsnames.o nsobject.o nsparse.o nspredef.o nssearch.o nsutils.o nswalk.o
nsxfeval.o nsxfname.o nsxfobj.o psargs.o psloop.o psopcode.o psparse.o
psscope.o pstree.o psutils.o pswalk.o psxface.o rsaddr.o rscalc.o rscreate.o
rsdump.o rsinfo.o rsio.o rsirq.o rslist.o rsmemory.o rsmisc.o rsutils.o
rsxface.o tbfadt.o tbfind.o tbinstal.o tbutils.o tbxface.o tbxfroot.o utalloc.o
utcache.o utcopy.o utdebug.o utdelete.o uteval.o utglobal.o utinit.o utlock.o
utmath.o utmisc.o utmutex.o utobject.o utresrc.o utstate.o utxface.o rijndael-
alg-fst.o rijndael-api-fst.o sha2.o db_access.o db_break.o db_capture.o
db_command.o db_examine.o db_expr.o db_input.o db_lex.o db_main.o db_output.o
db_print.o db_ps.o db_run.o db_script.o db_sym.o db_thread.o db_textdump.o
db_variables.o db_watch.o db_write_cmd.o OsdDebug.o OsdHardware.o
OsdInterrupt.o OsdMemory.o OsdSchedule.o OsdStream.o OsdSynch.o OsdTable.o
acpi.o acpi_acad.o acpi_battery.o acpi_button.o acpi_cmbat.o acpi_cpu.o
acpi_ec.o acpi_hpet.o acpi_isab.o acpi_lid.o acpi_package.o acpi_pci.o
acpi_pci_link.o acpi_pcib.o acpi_pcib_acpi.o acpi_pcib_pci.o acpi_perf.o
acpi_powerres.o acpi_quirk.o acpi_resource.o acpi_smbat.o acpi_thermal.o
acpi_throttle.o acpi_timer.o agp.o agp_if.o ata_if.o ata-all.o ata-dma.o ata-
lowlevel.o ata-queue.o ata-sata.o ata-isa.o ata-pci.o ata-ahci.o ata-acard.o
ata-acerlabs.o ata-adaptec.o ata-amd.o ata-ati.o ata-cenatek.o ata-cypress.o
ata-cyrix.o ata-highpoint.o ata-intel.o ata-ite.o ata-jmicron.o ata-marvell.o
ata-micron.o ata-national.o ata-netcell.o ata-nvidia.o ata-promise.o ata-
serverworks.o ata-siliconimage.o ata-sis.o ata-via.o ata-disk.o atapi-tape.o
ichss.o eisa_if.o led.o memdev.o mmcbr_if.o mmcbus_if.o null.o card_if.o
power_if.o fixup_pci.o hostb_pci.o ignore_pci.o isa_pci.o pci.o pci_if.o
pci_pci.o pci_user.o pcib_if.o vga_pci.o pty.o harvest.o hash.o probe.o
randomdev.o randomdev_soft.o yarrow.o schistory.o scmouse.o scterm.o scvidctl.o
syscons.o sysmouse.o uart_bus_acpi.o uart_bus_isa.o uart_bus_pci.o uart_core.o
uart_dev_ns8250.o uart_if.o uart_subr.o uart_tty.o watchdog.o dead_vnops.o
devfs_devs.o devfs_rule.o devfs_vfsops.o devfs_vnops.o fifo_vnops.o geom_ctl.o
geom_dev.o geom_disk.o geom_dump.o geom_event.o geom_io.o geom_kern.o
geom_slice.o geom_subr.o geom_vfs.o g_label.o g_label_ext2fs.o
g_label_iso9660.o g_label_msdosfs.o g_label_ntfs.o g_label_reiserfs.o
g_label_ufs.o g_label_gpt.o g_part.o g_part_if.o g_part_bsd.o g_part_ebr.o
g_part_gpt.o g_part_mbr.o isa_if.o isa_common.o isahint.o orm.o bus_if.o
clock_if.o cpufreq_if.o device_if.o imgact_elf.o imgact_shell.o init_main.o
init_sysent.o ksched.o kern_acct.o kern_clock.o kern_condvar.o kern_conf.o
kern_cons.o kern_cpu.o kern_cpuset.o kern_context.o kern_descrip.o
kern_environment.o kern_event.o kern_exec.o kern_exit.o kern_fail.o kern_fork.o
kern_idle.o kern_intr.o kern_jail.o kern_kthread.o kern_ktrace.o kern_linker.o
kern_lock.o kern_lockf.o kern_malloc.o kern_mbuf.o kern_mib.o kern_module.o
kern_mtxpool.o kern_mutex.o kern_ntptime.o kern_osd.o kern_physio.o kern_pmc.o
kern_priv.o kern_proc.o kern_prot.o kern_resource.o kern_rmlock.o kern_rwlock.o
kern_sema.o kern_shutdown.o kern_sig.o kern_subr.o kern_switch.o kern_sx.o
kern_synch.o kern_syscalls.o kern_sysctl.o kern_tc.o kern_thr.o kern_thread.o
kern_time.o kern_timeout.o kern_umtx.o kern_uuid.o kern_xxx.o link_elf.o
linker_if.o md5c.o p1003_1b.o posix4_mib.o sched_ule.o serdev_if.o
stack_protector.o subr_acl_posix1e.o subr_autoconf.o subr_blist.o subr_bus.o
subr_bufring.o subr_clock.o subr_devstat.o subr_disk.o subr_eventhandler.o
subr_fattime.o subr_hints.o subr_kdb.o subr_kobj.o subr_lock.o subr_log.o
subr_module.o subr_msgbuf.o subr_param.o subr_pcpu.o subr_power.o subr_prf.o
subr_prof.o subr_rman.o subr_rtc.o subr_sbuf.o subr_scanf.o subr_sglist.o
subr_sleepqueue.o subr_smp.o subr_stack.o subr_taskqueue.o subr_trap.o
subr_turnstile.o subr_unit.o sys_generic.o sys_pipe.o sys_process.o
sys_socket.o sysv_ipc.o sysv_msg.o sysv_sem.o sysv_shm.o tty.o tty_info.o
tty_inq.o tty_outq.o tty_pts.o tty_tty.o tty_ttydisc.o uipc_accf.o uipc_debug.o
uipc_domain.o uipc_mbuf.o uipc_mbuf2.o uipc_shm.o uipc_sockbuf.o uipc_socket.o
uipc_syscalls.o uipc_usrreq.o vfs_acl.o vfs_bio.o vfs_cache.o vfs_cluster.o
vfs_default.o vfs_export.o vfs_extattr.o vfs_hash.o vfs_init.o vfs_lookup.o
vfs_mount.o vfs_subr.o vfs_syscalls.o vfs_vnops.o arc4random.o bcd.o bsearch.o
crc32.o fnmatch.o gets.o index.o inet_ntoa.o memcmp.o qsort.o qsort_r.o
random.o rindex.o scanc.o skpc.o strcasecmp.o strcat.o strcmp.o strcpy.o
strcspn.o strdup.o strlcat.o strlcpy.o strlen.o strncmp.o strncpy.o strsep.o
strspn.o strstr.o strtol.o strtoq.o strtoul.o strtouq.o strvalid.o bpf.o
bpf_buffer.o bpf_filter.o bpf_zerocopy.o if.o if_clone.o if_dead.o
if_ethersubr.o if_loop.o if_llatbl.o if_media.o if_mib.o if_tun.o netisr.o
pfil.o radix.o radix_mpath.o raw_cb.o raw_usrreq.o route.o rtsock.o if_ether.o
igmp.o in.o ip_id.o in_mcast.o in_pcb.o in_proto.o in_rmx.o ip_ecn.o ip_encap.o
ip_fastfwd.o ip_icmp.o ip_input.o ip_options.o ip_output.o raw_ip.o
tcp_hostcache.o tcp_input.o tcp_lro.o tcp_output.o tcp_offload.o tcp_reass.o
tcp_sack.o tcp_subr.o tcp_syncache.o tcp_timer.o tcp_timewait.o tcp_usrreq.o
udp_usrreq.o dest6.o frag6.o icmp6.o in6.o in6_cksum.o in6_ifattach.o
in6_mcast.o in6_pcb.o in6_proto.o in6_rmx.o in6_src.o ip6_forward.o ip6_id.o
ip6_input.o ip6_output.o mld6.o nd6.o nd6_nbr.o nd6_rtr.o raw_ip6.o route6.o
scope6.o udp6_usrreq.o audit.o audit_arg.o audit_bsm.o audit_bsm_domain.o
audit_bsm_errno.o audit_bsm_fcntl.o audit_bsm_klib.o audit_bsm_socket_type.o
audit_bsm_token.o audit_pipe.o audit_syscalls.o audit_trigger.o audit_worker.o
mac_syscalls.o teken.o ffs_alloc.o ffs_balloc.o ffs_inode.o ffs_snapshot.o
ffs_softdep.o ffs_subr.o ffs_tables.o ffs_vfsops.o ffs_vnops.o ufs_acl.o
ufs_bmap.o ufs_dirhash.o ufs_extattr.o ufs_gjournal.o ufs_inode.o ufs_lookup.o
ufs_quota.o ufs_vfsops.o ufs_vnops.o default_pager.o device_pager.o
phys_pager.o sg_pager.o swap_pager.o uma_core.o uma_dbg.o vm_contig.o
vm_fault.o vm_glue.o vm_init.o vm_kern.o vm_map.o vm_meter.o vm_mmap.o
vm_object.o vm_page.o vm_pageout.o vm_pager.o vm_phys.o vm_reserv.o vm_unix.o
vm_zeroidle.o vnode_pager.o OsdEnvironment.o acpi_machdep.o acpi_switch.o
acpi_wakeup.o madt.o amd64_mem.o atomic.o autoconf.o bios.o busdma_machdep.o
cpu_switch.o db_disasm.o db_interface.o db_trace.o dump_machdep.o elf_machdep.o
exception.o fpu.o identcpu.o in_cksum.o initcpu.o intr_machdep.o io.o io_apic.o
legacy.o local_apic.o machdep.o mca.o mem.o minidump_machdep.o mp_machdep.o
mpboot.o msi.o nexus.o pmap.o sigtramp.o stack_machdep.o support.o
sys_machdep.o trap.o tsc.o uio_machdep.o uma_machdep.o vm_machdep.o clock.o
elcr.o isa.o isa_dma.o nmi.o pci_bus.o pci_cfgreg.o acpi_if.o acpi_wmi_if.o
agp_amd64.o agp_i810.o agp_intel.o agp_via.o atkbd.o atkbd_atkbdc.o atkbdc.o
atkbdc_isa.o atkbdc_subr.o psm.o fb.o vga.o iodev.o fdc.o fdc_acpi.o fdc_isa.o
kbd.o memutil.o scterm-teken.o scvgarndr.o scvtb.o uart_cpu_amd64.o atrtc.o
syscons_isa.o vga_isa.o link_elf_obj.o powernow.o est.o hwpstate.o p4tcc.o
memmove.o memset.o config.o env.o hints.o vnode_if.o hack.So vers.o

and here you can download all the files:

   http://www.vlakno.cz/~rdivacky/llvm.bug.tgz
Quuxplusone commented 15 years ago
You only need three of the files. This crashes:

$ llvm-ld -disable-opt -o kernel.debug sys_pipe.o sys_process.o sys_socket.o

llvm-ld: Value.cpp:458: void llvm::ValueHandleBase::RemoveFromUseList():
Assertion `*PrevPtr == this && "List invariant broken"' failed.
0   llvm-ld         0x00000000006efce2
1   llvm-ld         0x00000000006f027e
2   libpthread.so.0 0x00007ffc3746a7d0
3   libc.so.6       0x00007ffc36586095 gsignal + 53
4   libc.so.6       0x00007ffc36587af0 abort + 272
5   libc.so.6       0x00007ffc3657f2df __assert_fail + 239
6   llvm-ld         0x0000000000692786
llvm::ValueHandleBase::RemoveFromUseList() + 132
7   llvm-ld         0x00000000004d3640
llvm::ValueHandleBase::operator=(llvm::Value*) + 66
8   llvm-ld         0x0000000000694957
llvm::CallbackVH::setValPtr(llvm::Value*) + 33
9   llvm-ld         0x0000000000694974 llvm::CallbackVH::deleted() + 26
10  llvm-ld         0x00000000006939eb
llvm::ValueHandleBase::ValueIsDeleted(llvm::Value*) + 437
11  llvm-ld         0x0000000000693dab llvm::Value::~Value() + 55
12  llvm-ld         0x0000000000462e6f llvm::User::~User() + 107
13  llvm-ld         0x0000000000665269 llvm::MetadataBase::~MetadataBase() + 39
14  llvm-ld         0x0000000000663a02 llvm::MDNode::~MDNode() + 128
15  llvm-ld         0x0000000000663fa4
llvm::MDNode::replaceElement(llvm::Value*, llvm::Value*) + 1044
16  llvm-ld         0x0000000000665b91
llvm::MDNode::ElementVH::allUsesReplacedWith(llvm::Value*) + 45
17  llvm-ld         0x0000000000692cc0
llvm::ValueHandleBase::ValueIsRAUWd(llvm::Value*, llvm::Value*) + 336
18  llvm-ld         0x0000000000692cfa
llvm::Value::uncheckedReplaceAllUsesWith(llvm::Value*) + 44
19  llvm-ld         0x0000000000692e03
llvm::Value::replaceAllUsesWith(llvm::Value*) + 135
20  llvm-ld         0x0000000000446a04
llvm::BitcodeReaderMDValueList::AssignValue(llvm::Value*, unsigned int) + 196
21  llvm-ld         0x00000000004492b4 llvm::BitcodeReader::ParseMetadata() +
1880
22  llvm-ld         0x000000000044f7a5
llvm::BitcodeReader::ParseModule(std::string const&) + 1525
23  llvm-ld         0x0000000000450a8e llvm::BitcodeReader::ParseBitcode() + 614
24  llvm-ld         0x0000000000450b41
llvm::getBitcodeModuleProvider(llvm::MemoryBuffer*, llvm::LLVMContext&,
std::string*) + 63
25  llvm-ld         0x0000000000450bc7
llvm::ParseBitcodeFile(llvm::MemoryBuffer*, llvm::LLVMContext&, std::string*) +
37
26  llvm-ld         0x000000000043ccb3 llvm::Linker::LoadObject(llvm::sys::Path
const&) + 147
27  llvm-ld         0x000000000042e98d llvm::Linker::LinkInFile(llvm::sys::Path
const&, bool&) + 1085
28  llvm-ld         0x000000000042f188
llvm::Linker::LinkInItems(std::vector<std::pair<std::string, bool>,
std::allocator<std::pair<std::string, bool> > > const&,
std::vector<std::pair<std::string, bool>, std::allocator<std::pair<std::string,
bool> > >&) + 246
29  llvm-ld         0x00000000004090ba main + 1316
30  libc.so.6       0x00007ffc365721c4 __libc_start_main + 244
31  llvm-ld         0x0000000000400249
Stack dump:
0.      Program arguments: /home/nlewycky/llvm/Debug/bin/llvm-ld -disable-opt -
o kernel.debug sys_pipe.o sys_process.o sys_socket.o
Quuxplusone commented 15 years ago
Hm, it gets more exciting. Here's the valgrind output for the first error it
sees:

==29860== Invalid read of size 8
==29860==    at 0x6938D2: llvm::ValueHandleBase::ValueIsDeleted(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:491
==29860==    by 0x693DAA: llvm::Value::~Value()
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:65
==29860==    by 0x462E6E: llvm::User::~User()
/usr/local/google/home/nlewycky/llvm/include/llvm/User.h:79
==29860==    by 0x665268: llvm::MetadataBase::~MetadataBase()
/usr/local/google/home/nlewycky/llvm/include/llvm/Metadata.h:35
==29860==    by 0x663A01: llvm::MDNode::~MDNode()
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:124
==29860==    by 0x663FA3: llvm::MDNode::replaceElement(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:195
==29860==    by 0x665B90:
llvm::MDNode::ElementVH::allUsesReplacedWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/include/llvm/Metadata.h:124
==29860==    by 0x692CBF: llvm::ValueHandleBase::ValueIsRAUWd(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:543
==29860==    by 0x692CF9:
llvm::Value::uncheckedReplaceAllUsesWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:306
==29860==    by 0x692E02: llvm::Value::replaceAllUsesWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:329
==29860==    by 0x446A03:
llvm::BitcodeReaderMDValueList::AssignValue(llvm::Value*, unsigned int)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:333
==29860==    by 0x4492B3: llvm::BitcodeReader::ParseMetadata()
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:830
==29860==    by 0x44F7A4: llvm::BitcodeReader::ParseModule(std::string const&)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:1290
==29860==    by 0x450A8D: llvm::BitcodeReader::ParseBitcode()
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:1525
==29860==    by 0x450B40: llvm::getBitcodeModuleProvider(llvm::MemoryBuffer*,
llvm::LLVMContext&, std::string*)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2242
==29860==    by 0x450BC6: llvm::ParseBitcodeFile(llvm::MemoryBuffer*,
llvm::LLVMContext&, std::string*)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2260
==29860==    by 0x43CCB2: llvm::Linker::LoadObject(llvm::sys::Path const&)
/usr/local/google/home/nlewycky/llvm/lib/Linker/Linker.cpp:103
==29860==    by 0x42E98C: llvm::Linker::LinkInFile(llvm::sys::Path const&,
bool&) /usr/local/google/home/nlewycky/llvm/lib/Linker/LinkItems.cpp:197
==29860==    by 0x42F187:
llvm::Linker::LinkInItems(std::vector<std::pair<std::string, bool>,
std::allocator<std::pair<std::string, bool> > > const&,
std::vector<std::pair<std::string, bool>, std::allocator<std::pair<std::string,
bool> > >&) /usr/local/google/home/nlewycky/llvm/lib/Linker/LinkItems.cpp:46
==29860==    by 0x4090B9: main /usr/local/google/home/nlewycky/llvm/tools/llvm-
ld/llvm-ld.cpp:556
==29860==  Address 0x70c8508 is 56 bytes inside a block of size 640 free'd
==29860==    at 0x4C2373D: operator delete(void*)
/tmp/vg/coregrind/m_replacemalloc/vg_replace_malloc.c:379
==29860==    by 0x665197:
llvm::SmallVectorImpl<llvm::MDNode::ElementVH>::~SmallVectorImpl()
/usr/local/google/home/nlewycky/llvm/include/llvm/ADT/SmallVector.h:89
==29860==    by 0x6651AE: llvm::SmallVector<llvm::MDNode::ElementVH,
4u>::~SmallVector()
/usr/local/google/home/nlewycky/llvm/include/llvm/ADT/SmallVector.h:567
==29860==    by 0x6639F8: llvm::MDNode::~MDNode()
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:124
==29860==    by 0x663FA3: llvm::MDNode::replaceElement(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:195
==29860==    by 0x665B90:
llvm::MDNode::ElementVH::allUsesReplacedWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/include/llvm/Metadata.h:124
==29860==    by 0x692CBF: llvm::ValueHandleBase::ValueIsRAUWd(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:543
==29860==    by 0x692CF9:
llvm::Value::uncheckedReplaceAllUsesWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:306
==29860==    by 0x692E02: llvm::Value::replaceAllUsesWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:329
==29860==    by 0x663F7F: llvm::MDNode::replaceElement(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:194
==29860==    by 0x665BBD: llvm::MDNode::ElementVH::deleted()
/usr/local/google/home/nlewycky/llvm/include/llvm/Metadata.h:120
==29860==    by 0x6939EA: llvm::ValueHandleBase::ValueIsDeleted(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:507
==29860==    by 0x693DAA: llvm::Value::~Value()
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:65
==29860==    by 0x462E6E: llvm::User::~User()
/usr/local/google/home/nlewycky/llvm/include/llvm/User.h:79
==29860==    by 0x665268: llvm::MetadataBase::~MetadataBase()
/usr/local/google/home/nlewycky/llvm/include/llvm/Metadata.h:35
==29860==    by 0x663A01: llvm::MDNode::~MDNode()
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:124
==29860==    by 0x663FA3: llvm::MDNode::replaceElement(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Metadata.cpp:195
==29860==    by 0x665B90:
llvm::MDNode::ElementVH::allUsesReplacedWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/include/llvm/Metadata.h:124
==29860==    by 0x692CBF: llvm::ValueHandleBase::ValueIsRAUWd(llvm::Value*,
llvm::Value*) /usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:543
==29860==    by 0x692CF9:
llvm::Value::uncheckedReplaceAllUsesWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:306
==29860==    by 0x692E02: llvm::Value::replaceAllUsesWith(llvm::Value*)
/usr/local/google/home/nlewycky/llvm/lib/VMCore/Value.cpp:329
==29860==    by 0x446A03:
llvm::BitcodeReaderMDValueList::AssignValue(llvm::Value*, unsigned int)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:333
==29860==    by 0x4492B3: llvm::BitcodeReader::ParseMetadata()
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:830
==29860==    by 0x44F7A4: llvm::BitcodeReader::ParseModule(std::string const&)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:1290
==29860==    by 0x450A8D: llvm::BitcodeReader::ParseBitcode()
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:1525
==29860==    by 0x450B40: llvm::getBitcodeModuleProvider(llvm::MemoryBuffer*,
llvm::LLVMContext&, std::string*)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2242
==29860==    by 0x450BC6: llvm::ParseBitcodeFile(llvm::MemoryBuffer*,
llvm::LLVMContext&, std::string*)
/usr/local/google/home/nlewycky/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2260
==29860==    by 0x43CCB2: llvm::Linker::LoadObject(llvm::sys::Path const&)
/usr/local/google/home/nlewycky/llvm/lib/Linker/Linker.cpp:103
==29860==    by 0x42E98C: llvm::Linker::LinkInFile(llvm::sys::Path const&,
bool&) /usr/local/google/home/nlewycky/llvm/lib/Linker/LinkItems.cpp:197
==29860==    by 0x42F187:
llvm::Linker::LinkInItems(std::vector<std::pair<std::string, bool>,
std::allocator<std::pair<std::string, bool> > > const&,
std::vector<std::pair<std::string, bool>, std::allocator<std::pair<std::string,
bool> > >&) /usr/local/google/home/nlewycky/llvm/lib/Linker/LinkItems.cpp:46
==29860==    by 0x4090B9: main /usr/local/google/home/nlewycky/llvm/tools/llvm-
ld/llvm-ld.cpp:556
==29860==

but of course, 'valgrind llvm-dis' on any one of those files works fine.
Quuxplusone commented 15 years ago

Attached sys_pipe.o (135764 bytes, application/x-object): sys_pipe.o

Quuxplusone commented 15 years ago

Attached sys_process.o (117792 bytes, application/x-object): sys_process.o

Quuxplusone commented 15 years ago

Attached sys_socket.o (48636 bytes, application/x-object): sys_socket.o

Quuxplusone commented 13 years ago

dont know if it's a progress but when I try the same I am getting:

Assertion failed: (RefCount && "No objects are currently referencing this object!"), function dropRef, file /data/home/rdivacky/llvm/include/llvm/Type.h, line 443.

Quuxplusone commented 13 years ago

Is this still a problem? I rewrote much of the relevant code with the type system rewrite. The assertion that Roman cites is now gone, for example.

Quuxplusone commented 13 years ago

_This bug has been marked as a duplicate of bug 4496_