aboutsummaryrefslogtreecommitdiff
path: root/libiberty/cp-demangle.c
diff options
context:
space:
mode:
authornobody <>2004-05-04 00:00:08 +0000
committernobody <>2004-05-04 00:00:08 +0000
commitc6c80b39d6055d0fd8fdacc2c9ddd6cf0f2d6540 (patch)
treed4a3c551da07bf3b9bef5b84832c01576eafa2f1 /libiberty/cp-demangle.c
parent9a9f922d877cd9087a61e23a651eb2cfc6490305 (diff)
downloadbinutils-csl-arm-2004-q1a.zip
binutils-csl-arm-2004-q1a.tar.gz
binutils-csl-arm-2004-q1a.tar.bz2
This commit was manufactured by cvs2svn to create tag 'csl-arm-2004-q1a'.csl-arm-2004-q1a
Sprout from binutils-2_15-branch 2004-03-22 04:06:07 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-' Cherrypick from binutils-2_15-branch 2004-04-08 14:52:45 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-': gas/testsuite/gas/dlx/lohi.d gas/testsuite/gas/dlx/lohi.s gas/testsuite/gas/sh/renesas-1.d gas/testsuite/gas/sh/renesas-1.s ld/emultempl/irix.em Cherrypick from binutils-2_15-branch 2004-02-20 15:31:11 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-': ld/testsuite/ld-scripts/align.s ld/testsuite/ld-scripts/align.t Cherrypick from binutils-2_15-branch 2004-02-23 10:10:03 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-': ld/testsuite/ld-scripts/provide-2.t ld/testsuite/ld-scripts/provide-3.t Cherrypick from binutils-2_15-branch 2004-03-18 00:49:24 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-': gas/testsuite/gas/cfi/cfi-sh-1.d gas/testsuite/gas/cfi/cfi-sh-1.s Cherrypick from binutils-2_15-branch 2004-03-21 23:47:55 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-': gas/testsuite/gas/cris/mulbug-err-1.s gas/testsuite/gas/cris/rd-mulbug-1.d Cherrypick from binutils-2_15-branch 2004-02-19 14:08:32 UTC nobody 'This commit was manufactured by cvs2svn to create branch 'binutils-': ld/testsuite/ld-scripts/data.exp Cherrypick from master 2004-05-04 00:00:07 UTC Alan Modra <amodra@gmail.com> 'daily update': ChangeLog MAINTAINERS Makefile.def Makefile.in Makefile.tpl bfd/ChangeLog bfd/Makefile.am bfd/Makefile.in bfd/aclocal.m4 bfd/aix386-core.c bfd/aout-adobe.c bfd/aout-target.h bfd/aout-tic30.c bfd/archive.c bfd/archures.c bfd/bfd-in.h bfd/bfd-in2.h bfd/bfd.c bfd/bfdio.c bfd/binary.c bfd/bout.c bfd/cache.c bfd/coff-alpha.c bfd/coff-i386.c bfd/coff-mips.c bfd/coff-rs6000.c bfd/coff-tic54x.c bfd/coff64-rs6000.c bfd/coffcode.h bfd/config.bfd bfd/config.in bfd/configure bfd/configure.in bfd/cpu-cr16c.c bfd/cpu-frv.c bfd/cpu-m68k.c bfd/cpu-sh.c bfd/doc/ChangeLog bfd/doc/Makefile.in bfd/doc/bfdint.texi bfd/dwarf2.c bfd/ecoff.c bfd/ecofflink.c bfd/ecoffswap.h bfd/elf-bfd.h bfd/elf-eh-frame.c bfd/elf-hppa.h bfd/elf-m10200.c bfd/elf-m10300.c bfd/elf.c bfd/elf32-arm.h bfd/elf32-avr.c bfd/elf32-cr16c.c bfd/elf32-cris.c bfd/elf32-d10v.c bfd/elf32-dlx.c bfd/elf32-fr30.c bfd/elf32-frv.c bfd/elf32-gen.c bfd/elf32-h8300.c bfd/elf32-hppa.c bfd/elf32-i370.c bfd/elf32-i386.c bfd/elf32-i860.c bfd/elf32-ip2k.c bfd/elf32-iq2000.c bfd/elf32-m32r.c bfd/elf32-m68hc1x.c bfd/elf32-m68hc1x.h bfd/elf32-m68k.c bfd/elf32-mcore.c bfd/elf32-mips.c bfd/elf32-msp430.c bfd/elf32-openrisc.c bfd/elf32-ppc.c bfd/elf32-s390.c bfd/elf32-sh.c bfd/elf32-sh64.c bfd/elf32-sparc.c bfd/elf32-v850.c bfd/elf32-vax.c bfd/elf32-xstormy16.c bfd/elf32-xtensa.c bfd/elf64-alpha.c bfd/elf64-gen.c bfd/elf64-hppa.c bfd/elf64-mmix.c bfd/elf64-ppc.c bfd/elf64-s390.c bfd/elf64-sh64.c bfd/elf64-sparc.c bfd/elf64-x86-64.c bfd/elfarm-nabi.c bfd/elfcode.h bfd/elflink.c bfd/elfxx-ia64.c bfd/elfxx-mips.c bfd/elfxx-mips.h bfd/elfxx-target.h bfd/hppabsd-core.c bfd/hpux-core.c bfd/i386msdos.c bfd/i386os9k.c bfd/ieee.c bfd/ihex.c bfd/irix-core.c bfd/libaout.h bfd/libbfd-in.h bfd/libbfd.c bfd/libbfd.h bfd/libecoff.h bfd/linker.c bfd/mach-o.c bfd/mmo.c bfd/netbsd-core.c bfd/nlm-target.h bfd/oasys.c bfd/opncls.c bfd/osf-core.c bfd/pdp11.c bfd/pe-i386.c bfd/pe-mips.c bfd/peXXigen.c bfd/pef.c bfd/pei-i386.c bfd/po/SRC-POTFILES.in bfd/po/bfd.pot bfd/ppcboot.c bfd/ptrace-core.c bfd/reloc.c bfd/sco5-core.c bfd/section.c bfd/simple.c bfd/som.c bfd/som.h bfd/srec.c bfd/stabs.c bfd/sunos.c bfd/targets.c bfd/tekhex.c bfd/trad-core.c bfd/versados.c bfd/version.h bfd/vms.c bfd/xsym.c binutils/ChangeLog binutils/MAINTAINERS binutils/Makefile.am binutils/Makefile.in binutils/aclocal.m4 binutils/ar.c binutils/arsup.c binutils/config.in binutils/configure binutils/deflex.l binutils/defparse.y binutils/dlltool.c binutils/dlltool.h binutils/objcopy.c binutils/objdump.c binutils/po/binutils.pot binutils/ranlib.sh binutils/readelf.c binutils/strings.c binutils/testsuite/ChangeLog binutils/testsuite/binutils-all/ar.exp binutils/testsuite/binutils-all/objcopy.exp binutils/testsuite/binutils-all/readelf.ss-mips config.guess config.sub config/ChangeLog config/accross.m4 config/acx.m4 configure configure.in cpu/ChangeLog cpu/frv.cpu cpu/frv.opc cpu/m32r.cpu cpu/m32r.opc cpu/sh.cpu cpu/sh.opc cpu/sh64-compact.cpu cpu/sh64-media.cpu gas/ChangeLog gas/Makefile.am gas/Makefile.in gas/NEWS gas/aclocal.m4 gas/config.in gas/config/m68k-parse.h gas/config/m68k-parse.y gas/config/obj-aout.c gas/config/obj-elf.c gas/config/obj-som.c gas/config/tc-arc.c gas/config/tc-arm.c gas/config/tc-arm.h gas/config/tc-cris.c gas/config/tc-dlx.c gas/config/tc-frv.c gas/config/tc-generic.c gas/config/tc-hppa.c gas/config/tc-i386.c gas/config/tc-i386.h gas/config/tc-ia64.c gas/config/tc-ia64.h gas/config/tc-iq2000.c gas/config/tc-m32r.c gas/config/tc-m68k.c gas/config/tc-mips.c gas/config/tc-mips.h gas/config/tc-ppc.c gas/config/tc-s390.c gas/config/tc-sh.c gas/config/tc-sh.h gas/config/tc-xtensa.c gas/configure gas/configure.in gas/doc/Makefile.in gas/doc/as.texinfo gas/doc/c-arm.texi gas/doc/c-cris.texi gas/doc/c-hppa.texi gas/doc/c-m32r.texi gas/doc/c-mips.texi gas/doc/c-sh.texi gas/dw2gencfi.c gas/dwarf2dbg.c gas/ecoff.c gas/expr.c gas/po/gas.pot gas/read.c gas/stabs.c gas/testsuite/ChangeLog gas/testsuite/gas/alpha/elf-reloc-8.d gas/testsuite/gas/arm/arm.exp gas/testsuite/gas/arm/maverick.c gas/testsuite/gas/arm/maverick.d gas/testsuite/gas/arm/maverick.s gas/testsuite/gas/arm/reg-alias.d gas/testsuite/gas/arm/reg-alias.s gas/testsuite/gas/cfi/cfi-alpha-1.d gas/testsuite/gas/cfi/cfi-alpha-2.d gas/testsuite/gas/cfi/cfi-alpha-3.d gas/testsuite/gas/cfi/cfi-common-1.d gas/testsuite/gas/cfi/cfi-common-2.d gas/testsuite/gas/cfi/cfi-common-3.d gas/testsuite/gas/cfi/cfi-i386.d gas/testsuite/gas/cfi/cfi-m68k.d gas/testsuite/gas/cfi/cfi-s390x-1.d gas/testsuite/gas/cfi/cfi-sparc64-1.d gas/testsuite/gas/cfi/cfi-x86_64.d gas/testsuite/gas/cfi/cfi.exp gas/testsuite/gas/cris/regreg.d gas/testsuite/gas/dlx/alltests.exp gas/testsuite/gas/dlx/itype.d gas/testsuite/gas/dlx/lhi.d gas/testsuite/gas/elf/elf.exp gas/testsuite/gas/elf/group0.s gas/testsuite/gas/elf/group0a.d gas/testsuite/gas/elf/group0b.d gas/testsuite/gas/elf/group1.s gas/testsuite/gas/elf/group1a.d gas/testsuite/gas/elf/group1b.d gas/testsuite/gas/elf/section2.e-mips gas/testsuite/gas/elf/symver.d gas/testsuite/gas/frv/allinsn.d gas/testsuite/gas/frv/allinsn.exp gas/testsuite/gas/frv/allinsn.s gas/testsuite/gas/frv/fr405-insn.d gas/testsuite/gas/frv/fr405-insn.l gas/testsuite/gas/frv/fr405-insn.s gas/testsuite/gas/frv/fr450-insn.d gas/testsuite/gas/frv/fr450-insn.l gas/testsuite/gas/frv/fr450-insn.s gas/testsuite/gas/frv/fr450-media-issue.l gas/testsuite/gas/frv/fr450-media-issue.s gas/testsuite/gas/frv/fr450-spr.d gas/testsuite/gas/frv/fr450-spr.s gas/testsuite/gas/i386/i386.exp gas/testsuite/gas/i386/katmai.d gas/testsuite/gas/i386/padlock.d gas/testsuite/gas/i386/padlock.s gas/testsuite/gas/i386/secrel.d gas/testsuite/gas/i386/secrel.s gas/testsuite/gas/i860/dir-intel03-err.l gas/testsuite/gas/m32r/m32r.exp gas/testsuite/gas/m32r/m32r2.exp gas/testsuite/gas/m32r/parallel-2.d gas/testsuite/gas/m32r/parallel-2.s gas/testsuite/gas/m32r/seth.d gas/testsuite/gas/m32r/seth.s gas/testsuite/gas/m68hc11/m68hc11.exp gas/testsuite/gas/m68k/all.exp gas/testsuite/gas/m68k/mcf-emac.d gas/testsuite/gas/m68k/mcf-emac.s gas/testsuite/gas/m68k/mcf-mac.d gas/testsuite/gas/m68k/mcf-mac.s gas/testsuite/gas/macros/macros.exp gas/testsuite/gas/mips/lb-svr4pic-ilocks.d gas/testsuite/gas/mips/lb-xgot-ilocks.d gas/testsuite/gas/mips/ld-pic.s gas/testsuite/gas/mips/lifloat.s gas/testsuite/gas/mips/mips-abi32-pic.d gas/testsuite/gas/mips/mips-abi32-pic2.d gas/testsuite/gas/mips/mips-gp32-fp32-pic.d gas/testsuite/gas/mips/mips-gp32-fp64-pic.d gas/testsuite/gas/mips/mips-gp64-fp32-pic.d gas/testsuite/gas/mips/mips-gp64-fp64-pic.d gas/testsuite/gas/mips/mips.exp gas/testsuite/gas/mips/mips16-e.d gas/testsuite/gas/mips/mips16-f.d gas/testsuite/gas/mips/mipsel16-e.d gas/testsuite/gas/mips/mipsel16-f.d gas/testsuite/gas/mips/relax-swap1-mips2.d gas/testsuite/gas/mips/vr4122.d gas/testsuite/gas/mips/vr4122.s gas/testsuite/gas/ppc/altivec.d gas/testsuite/gas/ppc/altivec_xcoff.d gas/testsuite/gas/ppc/altivec_xcoff64.d gas/testsuite/gas/ppc/astest.d gas/testsuite/gas/ppc/astest2.d gas/testsuite/gas/ppc/astest2_64.d gas/testsuite/gas/ppc/astest64.d gas/testsuite/gas/ppc/booke.d gas/testsuite/gas/ppc/booke_xcoff.d gas/testsuite/gas/ppc/booke_xcoff64.d gas/testsuite/gas/ppc/e500.d gas/testsuite/gas/ppc/power4.d gas/testsuite/gas/ppc/power4.s gas/testsuite/gas/ppc/test1elf32.d gas/testsuite/gas/ppc/test1elf64.d gas/testsuite/gas/ppc/test1xcoff32.d gas/testsuite/gas/sh/basic.exp gas/testsuite/gas/sh/pcrel2.d gas/testsuite/gas/sh/sh64/err-dsp.s gas/testsuite/gas/sh/tlsd.d gas/testsuite/gas/sh/tlsnopic.d gas/testsuite/gas/sh/tlspic.d gas/testsuite/gas/symver/symver0.d gas/testsuite/gas/symver/symver1.d gas/testsuite/lib/gas-defs.exp gprof/ChangeLog gprof/Makefile.am gprof/Makefile.in gprof/gconfig.in gprof/po/gprof.pot gprof/po/sv.po include/ChangeLog include/bfdlink.h include/coff/ChangeLog include/coff/ecoff.h include/coff/internal.h include/coff/mips.h include/dyn-string.h include/elf/ChangeLog include/elf/arm.h include/elf/common.h include/elf/cr16c.h include/elf/frv.h include/elf/mips.h include/elf/sh.h include/hashtab.h include/opcode/ChangeLog include/opcode/i386.h include/opcode/m68k.h include/opcode/ppc.h include/splay-tree.h install-sh ld/ChangeLog ld/ChangeLog-0203 ld/Makefile.am ld/Makefile.in ld/NEWS ld/config.in ld/configure.host ld/configure.tgt ld/emulparams/elf32bmip.sh ld/emulparams/elf32bmipn32.sh ld/emulparams/elf32bsmip.sh ld/emulparams/elf32cr16c.sh ld/emulparams/elf32frvfd.sh ld/emulparams/elf64bmip.sh ld/emulparams/mipsidt.sh ld/emulparams/mipsidtl.sh ld/emultempl/armelf.em ld/emultempl/armelf_oabi.em ld/emultempl/elf32.em ld/emultempl/hppaelf.em ld/emultempl/mipsecoff.em ld/emultempl/ppc64elf.em ld/emultempl/sh64elf.em ld/ld.texinfo ld/ldexp.c ld/ldfile.c ld/ldgram.y ld/ldlang.c ld/ldlang.h ld/ldlex.l ld/ldmain.c ld/ldmain.h ld/lexsup.c ld/pe-dll.c ld/po/ld.pot ld/po/sv.po ld/scripttempl/elf.sc ld/scripttempl/elf32cr16c.sc ld/scripttempl/mips.sc ld/scripttempl/pe.sc ld/testsuite/ChangeLog ld/testsuite/ld-cdtest/cdtest.exp ld/testsuite/ld-elf/merge.d ld/testsuite/ld-elfvers/vers.exp ld/testsuite/ld-elfvsb/elfvsb.exp ld/testsuite/ld-elfweak/elfweak.exp ld/testsuite/ld-elfweak/size.dat ld/testsuite/ld-elfweak/size_bar.c ld/testsuite/ld-elfweak/size_foo.c ld/testsuite/ld-elfweak/size_main.c ld/testsuite/ld-frv/fdpic-pie-1.d ld/testsuite/ld-frv/fdpic-pie-2.d ld/testsuite/ld-frv/fdpic-pie-6.d ld/testsuite/ld-frv/fdpic-pie-7.d ld/testsuite/ld-frv/fdpic-pie-8.d ld/testsuite/ld-frv/fdpic-shared-1.d ld/testsuite/ld-frv/fdpic-shared-2.d ld/testsuite/ld-frv/fdpic-shared-3.d ld/testsuite/ld-frv/fdpic-shared-4.d ld/testsuite/ld-frv/fdpic-shared-5.d ld/testsuite/ld-frv/fdpic-shared-6.d ld/testsuite/ld-frv/fdpic-shared-7.d ld/testsuite/ld-frv/fdpic-shared-8.d ld/testsuite/ld-frv/fdpic-shared-local-2.d ld/testsuite/ld-frv/fdpic-shared-local-8.d ld/testsuite/ld-frv/fdpic-static-1.d ld/testsuite/ld-frv/fdpic-static-2.d ld/testsuite/ld-frv/fdpic-static-6.d ld/testsuite/ld-frv/fdpic-static-7.d ld/testsuite/ld-frv/fdpic-static-8.d ld/testsuite/ld-frv/fdpic.exp ld/testsuite/ld-frv/fr450-link.d ld/testsuite/ld-frv/fr450-linka.s ld/testsuite/ld-frv/fr450-linkb.s ld/testsuite/ld-frv/fr450-linkc.s ld/testsuite/ld-frv/frv-elf.exp ld/testsuite/ld-i386/tlspic.dd ld/testsuite/ld-mips-elf/mips-elf.exp ld/testsuite/ld-powerpc/tls.d ld/testsuite/ld-powerpc/tls32.d ld/testsuite/ld-powerpc/tlsexe.d ld/testsuite/ld-powerpc/tlsexe.r ld/testsuite/ld-powerpc/tlsexe32.d ld/testsuite/ld-powerpc/tlsexetoc.d ld/testsuite/ld-powerpc/tlsexetoc.r ld/testsuite/ld-powerpc/tlsso.d ld/testsuite/ld-powerpc/tlsso32.d ld/testsuite/ld-powerpc/tlstoc.d ld/testsuite/ld-powerpc/tlstocso.d ld/testsuite/ld-scripts/align.exp ld/testsuite/ld-scripts/assert.s ld/testsuite/ld-scripts/data.d ld/testsuite/ld-scripts/data.s ld/testsuite/ld-scripts/data.t ld/testsuite/ld-scripts/defined2.d ld/testsuite/ld-scripts/defined3.d ld/testsuite/ld-scripts/provide-1.d ld/testsuite/ld-scripts/provide-1.s ld/testsuite/ld-scripts/provide-1.t ld/testsuite/ld-scripts/provide-2.d ld/testsuite/ld-scripts/provide-2.s ld/testsuite/ld-scripts/provide-3.d ld/testsuite/ld-scripts/provide-3.s ld/testsuite/ld-scripts/provide.exp ld/testsuite/ld-scripts/size-1.d ld/testsuite/ld-scripts/size-1.s ld/testsuite/ld-scripts/size-1.t ld/testsuite/ld-scripts/size-2.d ld/testsuite/ld-scripts/size-2.s ld/testsuite/ld-scripts/size-2.t ld/testsuite/ld-scripts/size.exp ld/testsuite/ld-sh/tlsbin-1.d ld/testsuite/ld-sh/tlspic-1.d ld/testsuite/ld-shared/shared.exp libiberty/ChangeLog libiberty/Makefile.in libiberty/config.in libiberty/configure libiberty/configure.ac libiberty/cp-demangle.c libiberty/cp-demangle.h libiberty/dyn-string.c libiberty/hashtab.c libiberty/mkstemps.c libiberty/pex-common.h libiberty/pex-unix.c libiberty/strerror.c libiberty/testsuite/demangle-expected libiberty/testsuite/test-demangle.c mkinstalldirs opcodes/ChangeLog opcodes/aclocal.m4 opcodes/config.in opcodes/configure opcodes/frv-asm.c opcodes/frv-desc.c opcodes/frv-desc.h opcodes/frv-dis.c opcodes/frv-ibld.c opcodes/frv-opc.c opcodes/frv-opc.h opcodes/h8300-dis.c opcodes/i386-dis.c opcodes/m32r-asm.c opcodes/m68k-dis.c opcodes/m68k-opc.c opcodes/po/POTFILES.in opcodes/po/de.po opcodes/po/opcodes.pot opcodes/ppc-dis.c opcodes/ppc-opc.c opcodes/sh-dis.c opcodes/sh-opc.h opcodes/sparc-dis.c opcodes/sparc-opc.c src-release texinfo/texinfo.tex Delete: bfd/elflink.h bfd/mpw-config.in bfd/mpw-make.sed binutils/mac-binutils.r binutils/mpw-config.in binutils/mpw-make.sed gas/mac-as.r gas/mpw-config.in gas/mpw-make.sed gas/testsuite/gas/mips/elempic.d gas/testsuite/gas/mips/empic.d gas/testsuite/gas/mips/empic.l gas/testsuite/gas/mips/empic.s gas/testsuite/gas/mips/empic2.d gas/testsuite/gas/mips/empic2.s gas/testsuite/gas/mips/empic3_e.d gas/testsuite/gas/mips/empic3_e.s gas/testsuite/gas/mips/empic3_g1.d gas/testsuite/gas/mips/empic3_g1.s gas/testsuite/gas/mips/empic3_g2.d gas/testsuite/gas/mips/empic3_g2.s gas/testsuite/gas/mips/jal-empic-elf-2.d gas/testsuite/gas/mips/jal-empic-elf-2.s gas/testsuite/gas/mips/jal-empic-elf-3.d gas/testsuite/gas/mips/jal-empic-elf-3.s gas/testsuite/gas/mips/jal-empic-elf.d gas/testsuite/gas/mips/jal-empic.d gas/testsuite/gas/mips/la-empic.d gas/testsuite/gas/mips/la-empic.s gas/testsuite/gas/mips/lb-empic.d gas/testsuite/gas/mips/ld-empic.d gas/testsuite/gas/mips/lif-empic.d gas/testsuite/gas/mips/telempic.d gas/testsuite/gas/mips/tempic.d gas/testsuite/gas/mips/ulh-empic.d include/mpw/ChangeLog include/mpw/README include/mpw/dir.h include/mpw/dirent.h include/mpw/fcntl.h include/mpw/grp.h include/mpw/mpw.h include/mpw/pwd.h include/mpw/spin.h include/mpw/stat.h include/mpw/sys/file.h include/mpw/sys/param.h include/mpw/sys/resource.h include/mpw/sys/stat.h include/mpw/sys/time.h include/mpw/sys/types.h include/mpw/utime.h include/mpw/varargs.h ld/emultempl/mipself.em ld/mac-ld.r ld/mpw-config.in ld/mpw-make.sed ld/testsuite/ld-empic/empic.exp ld/testsuite/ld-empic/relax.t ld/testsuite/ld-empic/relax1.c ld/testsuite/ld-empic/relax2.c ld/testsuite/ld-empic/relax3.c ld/testsuite/ld-empic/relax4.c ld/testsuite/ld-empic/run.c ld/testsuite/ld-empic/runtest1.c ld/testsuite/ld-empic/runtest2.c ld/testsuite/ld-empic/runtesti.s ld/testsuite/ld-frv/fdpic-pie-8-fail.d ld/testsuite/ld-mips-elf/empic1-ln.d ld/testsuite/ld-mips-elf/empic1-lp.d ld/testsuite/ld-mips-elf/empic1-mn.d ld/testsuite/ld-mips-elf/empic1-mp.d ld/testsuite/ld-mips-elf/empic1-ref.s ld/testsuite/ld-mips-elf/empic1-sn.d ld/testsuite/ld-mips-elf/empic1-sp.d ld/testsuite/ld-mips-elf/empic1-space.s ld/testsuite/ld-mips-elf/empic1-tgt.s ld/testsuite/ld-mips-elf/empic2-fwd-0.d ld/testsuite/ld-mips-elf/empic2-fwd-1.d ld/testsuite/ld-mips-elf/empic2-fwd-tgt.s ld/testsuite/ld-mips-elf/empic2-ref.s ld/testsuite/ld-mips-elf/empic2-rev-0.d ld/testsuite/ld-mips-elf/empic2-rev-1.d ld/testsuite/ld-mips-elf/empic2-rev-tgt.s ld/testsuite/ld-mips-elf/empic2-space.s ld/testsuite/ld-mips-elf/emrelocs-eb.d ld/testsuite/ld-mips-elf/emrelocs-el.d ld/testsuite/ld-mips-elf/emrelocs.ld ld/testsuite/ld-mips-elf/emrelocs1.s ld/testsuite/ld-mips-elf/emrelocs2.s ld/testsuite/ld-mips-elf/reloc-3-r.d ld/testsuite/ld-mips-elf/reloc-3-srec.d ld/testsuite/ld-mips-elf/reloc-3.ld ld/testsuite/ld-mips-elf/reloc-3a.s ld/testsuite/ld-mips-elf/reloc-3b.s libiberty/acconfig.h mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install opcodes/mpw-config.in opcodes/mpw-make.sed
Diffstat (limited to 'libiberty/cp-demangle.c')
-rw-r--r--libiberty/cp-demangle.c355
1 files changed, 240 insertions, 115 deletions
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 19f191e..fe4b367 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -1748,31 +1748,33 @@ CP_STATIC_IF_GLIBCPP_V3
const struct demangle_builtin_type_info
cplus_demangle_builtin_types[D_BUILTIN_TYPE_COUNT] =
{
- /* a */ { NL ("signed char"), NL ("signed char"), D_PRINT_INT },
+ /* a */ { NL ("signed char"), NL ("signed char"), D_PRINT_DEFAULT },
/* b */ { NL ("bool"), NL ("boolean"), D_PRINT_BOOL },
- /* c */ { NL ("char"), NL ("byte"), D_PRINT_INT },
- /* d */ { NL ("double"), NL ("double"), D_PRINT_DEFAULT },
- /* e */ { NL ("long double"), NL ("long double"), D_PRINT_DEFAULT },
- /* f */ { NL ("float"), NL ("float"), D_PRINT_DEFAULT },
- /* g */ { NL ("__float128"), NL ("__float128"), D_PRINT_DEFAULT },
- /* h */ { NL ("unsigned char"), NL ("unsigned char"), D_PRINT_INT },
+ /* c */ { NL ("char"), NL ("byte"), D_PRINT_DEFAULT },
+ /* d */ { NL ("double"), NL ("double"), D_PRINT_FLOAT },
+ /* e */ { NL ("long double"), NL ("long double"), D_PRINT_FLOAT },
+ /* f */ { NL ("float"), NL ("float"), D_PRINT_FLOAT },
+ /* g */ { NL ("__float128"), NL ("__float128"), D_PRINT_FLOAT },
+ /* h */ { NL ("unsigned char"), NL ("unsigned char"), D_PRINT_DEFAULT },
/* i */ { NL ("int"), NL ("int"), D_PRINT_INT },
- /* j */ { NL ("unsigned int"), NL ("unsigned"), D_PRINT_INT },
+ /* j */ { NL ("unsigned int"), NL ("unsigned"), D_PRINT_UNSIGNED },
/* k */ { NULL, 0, NULL, 0, D_PRINT_DEFAULT },
/* l */ { NL ("long"), NL ("long"), D_PRINT_LONG },
- /* m */ { NL ("unsigned long"), NL ("unsigned long"), D_PRINT_LONG },
+ /* m */ { NL ("unsigned long"), NL ("unsigned long"), D_PRINT_UNSIGNED_LONG },
/* n */ { NL ("__int128"), NL ("__int128"), D_PRINT_DEFAULT },
- /* o */ { NL ("unsigned __int128"), NL ("unsigned __int128"), D_PRINT_DEFAULT },
+ /* o */ { NL ("unsigned __int128"), NL ("unsigned __int128"),
+ D_PRINT_DEFAULT },
/* p */ { NULL, 0, NULL, 0, D_PRINT_DEFAULT },
/* q */ { NULL, 0, NULL, 0, D_PRINT_DEFAULT },
/* r */ { NULL, 0, NULL, 0, D_PRINT_DEFAULT },
- /* s */ { NL ("short"), NL ("short"), D_PRINT_INT },
- /* t */ { NL ("unsigned short"), NL ("unsigned short"), D_PRINT_INT },
+ /* s */ { NL ("short"), NL ("short"), D_PRINT_DEFAULT },
+ /* t */ { NL ("unsigned short"), NL ("unsigned short"), D_PRINT_DEFAULT },
/* u */ { NULL, 0, NULL, 0, D_PRINT_DEFAULT },
/* v */ { NL ("void"), NL ("void"), D_PRINT_VOID },
- /* w */ { NL ("wchar_t"), NL ("char"), D_PRINT_INT },
- /* x */ { NL ("long long"), NL ("long"), D_PRINT_DEFAULT },
- /* y */ { NL ("unsigned long long"), NL ("unsigned long long"), D_PRINT_DEFAULT },
+ /* w */ { NL ("wchar_t"), NL ("char"), D_PRINT_DEFAULT },
+ /* x */ { NL ("long long"), NL ("long"), D_PRINT_LONG_LONG },
+ /* y */ { NL ("unsigned long long"), NL ("unsigned long long"),
+ D_PRINT_UNSIGNED_LONG_LONG },
/* z */ { NL ("..."), NL ("..."), D_PRINT_DEFAULT },
};
@@ -3050,6 +3052,30 @@ d_print_comp (dpi, dc)
case DEMANGLE_COMPONENT_RESTRICT:
case DEMANGLE_COMPONENT_VOLATILE:
case DEMANGLE_COMPONENT_CONST:
+ {
+ struct d_print_mod *pdpm;
+
+ /* When printing arrays, it's possible to have cases where the
+ same CV-qualifier gets pushed on the stack multiple times.
+ We only need to print it once. */
+
+ for (pdpm = dpi->modifiers; pdpm != NULL; pdpm = pdpm->next)
+ {
+ if (! pdpm->printed)
+ {
+ if (pdpm->mod->type != DEMANGLE_COMPONENT_RESTRICT
+ && pdpm->mod->type != DEMANGLE_COMPONENT_VOLATILE
+ && pdpm->mod->type != DEMANGLE_COMPONENT_CONST)
+ break;
+ if (pdpm->mod->type == dc->type)
+ {
+ d_print_comp (dpi, d_left (dc));
+ return;
+ }
+ }
+ }
+ }
+ /* Fall through. */
case DEMANGLE_COMPONENT_RESTRICT_THIS:
case DEMANGLE_COMPONENT_VOLATILE_THIS:
case DEMANGLE_COMPONENT_CONST_THIS:
@@ -3125,24 +3151,65 @@ d_print_comp (dpi, dc)
case DEMANGLE_COMPONENT_ARRAY_TYPE:
{
- struct d_print_mod dpm;
+ struct d_print_mod *hold_modifiers;
+ struct d_print_mod adpm[4];
+ unsigned int i;
+ struct d_print_mod *pdpm;
/* We must pass this type down as a modifier in order to print
- multi-dimensional arrays correctly. */
+ multi-dimensional arrays correctly. If the array itself is
+ CV-qualified, we act as though the element type were
+ CV-qualified. We do this by copying the modifiers down
+ rather than fiddling pointers, so that we don't wind up
+ with a d_print_mod higher on the stack pointing into our
+ stack frame after we return. */
- dpm.next = dpi->modifiers;
- dpi->modifiers = &dpm;
- dpm.mod = dc;
- dpm.printed = 0;
- dpm.templates = dpi->templates;
+ hold_modifiers = dpi->modifiers;
+
+ adpm[0].next = hold_modifiers;
+ dpi->modifiers = &adpm[0];
+ adpm[0].mod = dc;
+ adpm[0].printed = 0;
+ adpm[0].templates = dpi->templates;
+
+ i = 1;
+ pdpm = hold_modifiers;
+ while (pdpm != NULL
+ && (pdpm->mod->type == DEMANGLE_COMPONENT_RESTRICT
+ || pdpm->mod->type == DEMANGLE_COMPONENT_VOLATILE
+ || pdpm->mod->type == DEMANGLE_COMPONENT_CONST))
+ {
+ if (! pdpm->printed)
+ {
+ if (i >= sizeof adpm / sizeof adpm[0])
+ {
+ d_print_error (dpi);
+ return;
+ }
+
+ adpm[i] = *pdpm;
+ adpm[i].next = dpi->modifiers;
+ dpi->modifiers = &adpm[i];
+ pdpm->printed = 1;
+ ++i;
+ }
+
+ pdpm = pdpm->next;
+ }
d_print_comp (dpi, d_right (dc));
- dpi->modifiers = dpm.next;
+ dpi->modifiers = hold_modifiers;
- if (dpm.printed)
+ if (adpm[0].printed)
return;
+ while (i > 1)
+ {
+ --i;
+ d_print_mod (dpi, adpm[i].mod);
+ }
+
d_print_array_type (dpi, dc, dpi->modifiers);
return;
@@ -3212,15 +3279,13 @@ d_print_comp (dpi, dc)
d_print_expr_op (dpi, d_left (dc));
else
{
- d_append_string_constant (dpi, "((");
+ d_append_char (dpi, '(');
d_print_cast (dpi, d_left (dc));
d_append_char (dpi, ')');
}
d_append_char (dpi, '(');
d_print_comp (dpi, d_right (dc));
d_append_char (dpi, ')');
- if (d_left (dc)->type == DEMANGLE_COMPONENT_CAST)
- d_append_char (dpi, ')');
return;
case DEMANGLE_COMPONENT_BINARY:
@@ -3284,62 +3349,86 @@ d_print_comp (dpi, dc)
case DEMANGLE_COMPONENT_LITERAL:
case DEMANGLE_COMPONENT_LITERAL_NEG:
- /* For some builtin types, produce simpler output. */
- if (d_left (dc)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE)
- {
- switch (d_left (dc)->u.s_builtin.type->print)
- {
- case D_PRINT_INT:
- if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME)
- {
- if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
- d_append_char (dpi, '-');
- d_print_comp (dpi, d_right (dc));
- return;
- }
- break;
+ {
+ enum d_builtin_type_print tp;
- case D_PRINT_LONG:
- if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME)
- {
- if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
- d_append_char (dpi, '-');
- d_print_comp (dpi, d_right (dc));
- d_append_char (dpi, 'l');
- return;
- }
- break;
+ /* For some builtin types, produce simpler output. */
+ tp = D_PRINT_DEFAULT;
+ if (d_left (dc)->type == DEMANGLE_COMPONENT_BUILTIN_TYPE)
+ {
+ tp = d_left (dc)->u.s_builtin.type->print;
+ switch (tp)
+ {
+ case D_PRINT_INT:
+ case D_PRINT_UNSIGNED:
+ case D_PRINT_LONG:
+ case D_PRINT_UNSIGNED_LONG:
+ case D_PRINT_LONG_LONG:
+ case D_PRINT_UNSIGNED_LONG_LONG:
+ if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME)
+ {
+ if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
+ d_append_char (dpi, '-');
+ d_print_comp (dpi, d_right (dc));
+ switch (tp)
+ {
+ default:
+ break;
+ case D_PRINT_UNSIGNED:
+ d_append_char (dpi, 'u');
+ break;
+ case D_PRINT_LONG:
+ d_append_char (dpi, 'l');
+ break;
+ case D_PRINT_UNSIGNED_LONG:
+ d_append_string_constant (dpi, "ul");
+ break;
+ case D_PRINT_LONG_LONG:
+ d_append_string_constant (dpi, "ll");
+ break;
+ case D_PRINT_UNSIGNED_LONG_LONG:
+ d_append_string_constant (dpi, "ull");
+ break;
+ }
+ return;
+ }
+ break;
- case D_PRINT_BOOL:
- if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME
- && d_right (dc)->u.s_name.len == 1
- && dc->type == DEMANGLE_COMPONENT_LITERAL)
- {
- switch (d_right (dc)->u.s_name.s[0])
- {
- case '0':
- d_append_string_constant (dpi, "false");
- return;
- case '1':
- d_append_string_constant (dpi, "true");
- return;
- default:
- break;
- }
- }
- break;
+ case D_PRINT_BOOL:
+ if (d_right (dc)->type == DEMANGLE_COMPONENT_NAME
+ && d_right (dc)->u.s_name.len == 1
+ && dc->type == DEMANGLE_COMPONENT_LITERAL)
+ {
+ switch (d_right (dc)->u.s_name.s[0])
+ {
+ case '0':
+ d_append_string_constant (dpi, "false");
+ return;
+ case '1':
+ d_append_string_constant (dpi, "true");
+ return;
+ default:
+ break;
+ }
+ }
+ break;
- default:
- break;
- }
- }
+ default:
+ break;
+ }
+ }
- d_append_char (dpi, '(');
- d_print_comp (dpi, d_left (dc));
- d_append_char (dpi, ')');
- if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
- d_append_char (dpi, '-');
- d_print_comp (dpi, d_right (dc));
+ d_append_char (dpi, '(');
+ d_print_comp (dpi, d_left (dc));
+ d_append_char (dpi, ')');
+ if (dc->type == DEMANGLE_COMPONENT_LITERAL_NEG)
+ d_append_char (dpi, '-');
+ if (tp == D_PRINT_FLOAT)
+ d_append_char (dpi, '[');
+ d_print_comp (dpi, d_right (dc));
+ if (tp == D_PRINT_FLOAT)
+ d_append_char (dpi, ']');
+ }
return;
default:
@@ -3549,11 +3638,13 @@ d_print_function_type (dpi, dc, mods)
{
int need_paren;
int saw_mod;
+ int need_space;
struct d_print_mod *p;
struct d_print_mod *hold_modifiers;
need_paren = 0;
saw_mod = 0;
+ need_space = 0;
for (p = mods; p != NULL; p = p->next)
{
if (p->printed)
@@ -3562,15 +3653,18 @@ d_print_function_type (dpi, dc, mods)
saw_mod = 1;
switch (p->mod->type)
{
+ case DEMANGLE_COMPONENT_POINTER:
+ case DEMANGLE_COMPONENT_REFERENCE:
+ need_paren = 1;
+ break;
case DEMANGLE_COMPONENT_RESTRICT:
case DEMANGLE_COMPONENT_VOLATILE:
case DEMANGLE_COMPONENT_CONST:
case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
- case DEMANGLE_COMPONENT_POINTER:
- case DEMANGLE_COMPONENT_REFERENCE:
case DEMANGLE_COMPONENT_COMPLEX:
case DEMANGLE_COMPONENT_IMAGINARY:
case DEMANGLE_COMPONENT_PTRMEM_TYPE:
+ need_space = 1;
need_paren = 1;
break;
case DEMANGLE_COMPONENT_RESTRICT_THIS:
@@ -3589,18 +3683,14 @@ d_print_function_type (dpi, dc, mods)
if (need_paren)
{
- switch (d_last_char (dpi))
+ if (! need_space)
{
- case ' ':
- case '(':
- case '*':
- break;
-
- default:
- d_append_char (dpi, ' ');
- break;
+ if (d_last_char (dpi) != '('
+ && d_last_char (dpi) != '*')
+ need_space = 1;
}
-
+ if (need_space && d_last_char (dpi) != ' ')
+ d_append_char (dpi, ' ');
d_append_char (dpi, '(');
}
@@ -3643,19 +3733,19 @@ d_print_array_type (dpi, dc, mods)
need_paren = 0;
for (p = mods; p != NULL; p = p->next)
{
- if (p->printed)
- break;
-
- if (p->mod->type == DEMANGLE_COMPONENT_ARRAY_TYPE)
- {
- need_space = 0;
- break;
- }
- else
+ if (! p->printed)
{
- need_paren = 1;
- need_space = 1;
- break;
+ if (p->mod->type == DEMANGLE_COMPONENT_ARRAY_TYPE)
+ {
+ need_space = 0;
+ break;
+ }
+ else
+ {
+ need_paren = 1;
+ need_space = 1;
+ break;
+ }
}
}
@@ -3944,29 +4034,46 @@ __cxa_demangle (mangled_name, output_buffer, length, status)
char *demangled;
size_t alc;
- if (status == NULL)
- return NULL;
-
if (mangled_name == NULL)
{
- *status = -3;
+ if (status != NULL)
+ *status = -3;
return NULL;
}
if (output_buffer != NULL && length == NULL)
{
- *status = -3;
+ if (status != NULL)
+ *status = -3;
+ return NULL;
+ }
+
+ /* The specification for __cxa_demangle() is that if the mangled
+ name could be either an extern "C" identifier, or an internal
+ built-in type name, then we resolve it as the identifier. All
+ internal built-in type names are a single lower case character.
+ Frankly, this simplistic disambiguation doesn't make sense to me,
+ but it is documented, so we implement it here. */
+ if (IS_LOWER (mangled_name[0])
+ && mangled_name[1] == '\0'
+ && cplus_demangle_builtin_types[mangled_name[0] - 'a'].name != NULL)
+ {
+ if (status != NULL)
+ *status = -2;
return NULL;
}
- demangled = d_demangle (mangled_name, DMGL_TYPES, &alc);
+ demangled = d_demangle (mangled_name, DMGL_PARAMS | DMGL_TYPES, &alc);
if (demangled == NULL)
{
- if (alc == 1)
- *status = -1;
- else
- *status = -2;
+ if (status != NULL)
+ {
+ if (alc == 1)
+ *status = -1;
+ else
+ *status = -2;
+ }
return NULL;
}
@@ -3990,7 +4097,8 @@ __cxa_demangle (mangled_name, output_buffer, length, status)
}
}
- *status = 0;
+ if (status != NULL)
+ *status = 0;
return demangled;
}
@@ -4296,7 +4404,11 @@ main (argc, argv)
if (dyn_string_length (mangled) > 0)
{
+#ifdef IN_GLIBCPP_V3
+ s = __cxa_demangle (dyn_string_buf (mangled), NULL, NULL, NULL);
+#else
s = cplus_demangle_v3 (dyn_string_buf (mangled), options);
+#endif
if (s != NULL)
{
@@ -4328,9 +4440,16 @@ main (argc, argv)
for (i = optind; i < argc; ++i)
{
char *s;
+#ifdef IN_GLIBCPP_V3
+ int status;
+#endif
/* Attempt to demangle. */
+#ifdef IN_GLIBCPP_V3
+ s = __cxa_demangle (argv[i], NULL, NULL, &status);
+#else
s = cplus_demangle_v3 (argv[i], options);
+#endif
/* If it worked, print the demangled name. */
if (s != NULL)
@@ -4339,7 +4458,13 @@ main (argc, argv)
free (s);
}
else
- fprintf (stderr, "Failed: %s\n", argv[i]);
+ {
+#ifdef IN_GLIBCPP_V3
+ fprintf (stderr, "Failed: %s (status %d)\n", argv[i], status);
+#else
+ fprintf (stderr, "Failed: %s\n", argv[i]);
+#endif
+ }
}
}