Synchronize binutils libiberty sources with gcc version.

+2021-12-30  Lancelot SIX  <lsix@lancelotsix.com>
+
+	* cp-demangle.c (d_clone_suffix): Support digits in clone tag
+	names.
+	* testsuite/demangle-expected: Check demangling of clone symbols
+	with digits in name.
+
+2021-12-16  H.J. Lu  <hjl.tools@gmail.com>
+
+	Revert:
+	2021-12-16  H.J. Lu  <hjl.tools@gmail.com>
+
+	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
+	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
+	(configure_deps): Depend on ../config/gcc-plugin.m4.
+	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
+	RANLIB_PLUGIN_OPTION.
+	* aclocal.m4: Regenerated.
+	* configure: Likewise.
+
+2021-12-15  H.J. Lu  <hjl.tools@gmail.com>
+
+	* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
+	(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
+	(configure_deps): Depend on ../config/gcc-plugin.m4.
+	* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
+	RANLIB_PLUGIN_OPTION.
+	* aclocal.m4: Regenerated.
+	* configure: Likewise.
+
+2021-11-29  Eric Gallager  <egallager@gcc.gnu.org>
+
+	PR other/103021
+	* Makefile.in: Use ETAGS variable in TAGS target.
+	* configure: Regenerate.
+	* configure.ac: Allow ETAGS variable to be overridden.
+
+2021-11-29  Andrew Pinski  <apinski@marvell.com>
+
+	* make-temp-file.c (try_dir): Check to see if the dir
+	is actually a directory.
+
+2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>
+
+	PR other/102663
+	* Makefile.in: Allow dvi-formatted documentation
+	to be installed.
+
+2021-10-17  Lu?s Ferreira  <contact@lsferreira.net>
+
+	PR d/102618
+	* d-demangle.c (dlang_parse_qualified): Handle anonymous
+	symbols correctly.
+	* testsuite/d-demangle-expected: New tests to cover anonymous
+	symbols.
+
+2021-10-14  Lu?s Ferreira  <contact@lsferreira.net>
+
+	* testsuite/d-demangle-expected: Add test case for function literals.
+
+2021-10-14  Lu?s Ferreira  <contact@lsferreira.net>
+
+	* testsuite/d-demangle-expected: Add test cases for simple special
+	mangles.
+
+2021-10-12  Lu?s Ferreira  <contact@lsferreira.net>
+
+	* d-demangle.c (dlang_parse_qualified): Remove redudant parenthesis
+	around lhs and rhs of assignments.
+
+2021-10-01  Lu?s Ferreira  <contact@lsferreira.net>
+
+	* testsuite/d-demangle-expected: Add missing format for new test
+
+2021-09-23  Lu?s Ferreira  <contact@lsferreira.net>
+
+	* d-demangle.c (dlang_Type): Validate MANGLED is nonnull.
+	* testsuite/d-demangle-expected: New test.
+
+2021-09-23  Lu?s Ferreira  <contact@lsferreira.net>
+
+	* d-demangle.c (dlang_symbol_backref): Ensure strlen of
+	string is less than length computed by dlang_number.
+
+2021-09-01  Iain Sandoe  <iain@sandoe.co.uk>

 	* configure: Regenerate.
+	* configure.ac: Do not search for sbrk on Darwin.
+	* xmalloc.c: Do not declare sbrk unless it has been found
+	by configure.
+
+2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_identifier): Skip over fake parent manglings.
+	* testsuite/d-demangle-expected: Add tests.
+
+2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_parse_arrayliteral): Add 'info' parameter.
+	(dlang_parse_assocarray): Likewise.
+	(dlang_parse_structlit): Likewise.
+	(dlang_value): Likewise.  Handle function literal symbols.
+	(dlang_template_args): Pass 'info' to dlang_value.
+	* testsuite/d-demangle-expected: Add new test.
+
+2021-08-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_attributes): Handle typeof(*null).
+	(dlang_type): Likewise.  Demangle 'n' as typeof(null).
+	* testsuite/d-demangle-expected: Update tests.
+
+2021-08-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+	* simple-object-mach-o.c (simple_object_mach_o_write_segment):
+	Cast the first argument to set_32 as needed.

-2021-07-03  Nick Clifton  <nickc@redhat.com>
+2021-08-18  Iain Sandoe  <iain@sandoe.co.uk>

+	* simple-object-mach-o.c (simple_object_mach_o_write_segment):
+	Arrange to swap the LTO index tables where needed.
 # Please enter the commit message for your changes. Lines starting
This commit is contained in:
Nick Clifton 2022-01-13 12:25:34 +00:00
parent 4b74833d1a
commit ce2d3708bc
14 changed files with 360 additions and 203 deletions

View File

@ -1,3 +1,11 @@
2022-01-13 Nick Clifton <nickc@redhat.com>
Import from gcc mainline:
2021-01-03 Mike Frysinger <vapier@gentoo.org>
* libiberty.h (strverscmp): Delete duplicate prototype.
2021-12-07 John Baldwin <jhb@FreeBSD.org> 2021-12-07 John Baldwin <jhb@FreeBSD.org>
* elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define. * elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define.

View File

@ -713,11 +713,6 @@ extern unsigned long long int strtoull (const char *nptr,
char **endptr, int base); char **endptr, int base);
#endif #endif
#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
/* Compare version strings. */
extern int strverscmp (const char *, const char *);
#endif
/* Set the title of a process */ /* Set the title of a process */
extern void setproctitle (const char *name, ...); extern void setproctitle (const char *name, ...);

View File

@ -1,10 +1,123 @@
2021-07-03 Nick Clifton <nickc@redhat.com> 2021-12-30 Lancelot SIX <lsix@lancelotsix.com>
* cp-demangle.c (d_clone_suffix): Support digits in clone tag
names.
* testsuite/demangle-expected: Check demangling of clone symbols
with digits in name.
2021-12-16 H.J. Lu <hjl.tools@gmail.com>
Revert:
2021-12-16 H.J. Lu <hjl.tools@gmail.com>
* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
(configure_deps): Depend on ../config/gcc-plugin.m4.
* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
RANLIB_PLUGIN_OPTION.
* aclocal.m4: Regenerated.
* configure: Likewise.
2021-12-15 H.J. Lu <hjl.tools@gmail.com>
* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
(configure_deps): Depend on ../config/gcc-plugin.m4.
* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
RANLIB_PLUGIN_OPTION.
* aclocal.m4: Regenerated.
* configure: Likewise.
2021-11-29 Eric Gallager <egallager@gcc.gnu.org>
PR other/103021
* Makefile.in: Use ETAGS variable in TAGS target.
* configure: Regenerate.
* configure.ac: Allow ETAGS variable to be overridden.
2021-11-29 Andrew Pinski <apinski@marvell.com>
* make-temp-file.c (try_dir): Check to see if the dir
is actually a directory.
2021-10-22 Eric Gallager <egallager@gcc.gnu.org>
PR other/102663
* Makefile.in: Allow dvi-formatted documentation
to be installed.
2021-10-17 Luís Ferreira <contact@lsferreira.net>
PR d/102618
* d-demangle.c (dlang_parse_qualified): Handle anonymous
symbols correctly.
* testsuite/d-demangle-expected: New tests to cover anonymous
symbols.
2021-10-14 Luís Ferreira <contact@lsferreira.net>
* testsuite/d-demangle-expected: Add test case for function literals.
2021-10-14 Luís Ferreira <contact@lsferreira.net>
* testsuite/d-demangle-expected: Add test cases for simple special
mangles.
2021-10-12 Luís Ferreira <contact@lsferreira.net>
* d-demangle.c (dlang_parse_qualified): Remove redudant parenthesis
around lhs and rhs of assignments.
2021-10-01 Luís Ferreira <contact@lsferreira.net>
* testsuite/d-demangle-expected: Add missing format for new test
2021-09-23 Luís Ferreira <contact@lsferreira.net>
* d-demangle.c (dlang_Type): Validate MANGLED is nonnull.
* testsuite/d-demangle-expected: New test.
2021-09-23 Luís Ferreira <contact@lsferreira.net>
* d-demangle.c (dlang_symbol_backref): Ensure strlen of
string is less than length computed by dlang_number.
2021-09-01 Iain Sandoe <iain@sandoe.co.uk>
* configure: Regenerate. * configure: Regenerate.
* configure.ac: Do not search for sbrk on Darwin.
* xmalloc.c: Do not declare sbrk unless it has been found
by configure.
2021-07-03 Nick Clifton <nickc@redhat.com> 2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
* 2.37 release branch created. * d-demangle.c (dlang_identifier): Skip over fake parent manglings.
* testsuite/d-demangle-expected: Add tests.
2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_parse_arrayliteral): Add 'info' parameter.
(dlang_parse_assocarray): Likewise.
(dlang_parse_structlit): Likewise.
(dlang_value): Likewise. Handle function literal symbols.
(dlang_template_args): Pass 'info' to dlang_value.
* testsuite/d-demangle-expected: Add new test.
2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_attributes): Handle typeof(*null).
(dlang_type): Likewise. Demangle 'n' as typeof(null).
* testsuite/d-demangle-expected: Update tests.
2021-08-23 Iain Sandoe <iain@sandoe.co.uk>
* simple-object-mach-o.c (simple_object_mach_o_write_segment):
Cast the first argument to set_32 as needed.
2021-08-18 Iain Sandoe <iain@sandoe.co.uk>
* simple-object-mach-o.c (simple_object_mach_o_write_segment):
Arrange to swap the LTO index tables where needed.
2021-06-30 Gerald Pfeifer <gerald@pfeifer.com> 2021-06-30 Gerald Pfeifer <gerald@pfeifer.com>

View File

@ -29,6 +29,7 @@ bindir = @bindir@
libdir = @libdir@ libdir = @libdir@
includedir = @includedir@ includedir = @includedir@
target_header_dir = @target_header_dir@ target_header_dir = @target_header_dir@
dvidir = @dvidir@
objext = @OBJEXT@ objext = @OBJEXT@
SHELL = @SHELL@ SHELL = @SHELL@
@ -49,13 +50,13 @@ mkinstalldirs = $(SHELL) $(libiberty_topdir)/mkinstalldirs
# Some compilers can't handle cc -c blah.c -o foo/blah.o. # Some compilers can't handle cc -c blah.c -o foo/blah.o.
OUTPUT_OPTION = @OUTPUT_OPTION@ OUTPUT_OPTION = @OUTPUT_OPTION@
AR = @AR@ @AR_PLUGIN_OPTION@ AR = @AR@
AR_FLAGS = rc AR_FLAGS = rc
CC = @CC@ CC = @CC@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@ RANLIB = @RANLIB@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
PERL = @PERL@ PERL = @PERL@
@ -276,7 +277,24 @@ $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
info: libiberty.info info-subdir info: libiberty.info info-subdir
install-info: install-info-subdir install-info: install-info-subdir
clean-info: clean-info-subdir clean-info: clean-info-subdir
dvi: libiberty.dvi dvi-subdir
LIBIBERTY_DVIFILES = libiberty.dvi
dvi: $(LIBIBERTY_DVIFILES) dvi-subdir
.PHONY: install-dvi
dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
install-dvi: $(LIBIBERTY_DVIFILES)
@$(NORMAL_INSTALL)
test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
@list='$(LIBIBERTY_DVIFILES)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(dvi__strip_dir) \
echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
$(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
done
LIBIBERTY_PDFFILES = libiberty.pdf LIBIBERTY_PDFFILES = libiberty.pdf
@ -411,8 +429,10 @@ stamp-noasandir:
.PHONY: all etags tags TAGS ls clean stage1 stage2 .PHONY: all etags tags TAGS ls clean stage1 stage2
ETAGS = @ETAGS@
etags tags TAGS: etags-subdir etags tags TAGS: etags-subdir
cd $(srcdir) && etags $(CFILES) cd $(srcdir) && $(ETAGS) $(CFILES)
# The standalone demangler (c++filt) has been moved to binutils. # The standalone demangler (c++filt) has been moved to binutils.
# But make this target work anyway for demangler hacking. # But make this target work anyway for demangler hacking.
@ -487,7 +507,6 @@ aclocal_deps = \
$(srcdir)/../config/acx.m4 \ $(srcdir)/../config/acx.m4 \
$(srcdir)/../config/cet.m4 \ $(srcdir)/../config/cet.m4 \
$(srcdir)/../config/enable.m4 \ $(srcdir)/../config/enable.m4 \
$(srcdir)/../config/gcc-plugin.m4 \
$(srcdir)/../config/no-executables.m4 \ $(srcdir)/../config/no-executables.m4 \
$(srcdir)/../config/override.m4 \ $(srcdir)/../config/override.m4 \
$(srcdir)/../config/picflag.m4 \ $(srcdir)/../config/picflag.m4 \

View File

@ -15,7 +15,6 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun
m4_include([../config/acx.m4]) m4_include([../config/acx.m4])
m4_include([../config/cet.m4]) m4_include([../config/cet.m4])
m4_include([../config/enable.m4]) m4_include([../config/enable.m4])
m4_include([../config/gcc-plugin.m4])
m4_include([../config/no-executables.m4]) m4_include([../config/no-executables.m4])
m4_include([../config/picflag.m4]) m4_include([../config/picflag.m4])
m4_include([../config/warnings.m4]) m4_include([../config/warnings.m4])

177
libiberty/configure vendored
View File

@ -645,8 +645,6 @@ CPPFLAGS
LDFLAGS LDFLAGS
CFLAGS CFLAGS
CC CC
RANLIB_PLUGIN_OPTION
AR_PLUGIN_OPTION
RANLIB RANLIB
AR AR
host_os host_os
@ -661,6 +659,7 @@ HAVE_PERL
PERL PERL
BUILD_INFO BUILD_INFO
MAKEINFO MAKEINFO
ETAGS
NOTMAINT NOTMAINT
MAINT MAINT
libiberty_topdir libiberty_topdir
@ -683,6 +682,7 @@ infodir
docdir docdir
oldincludedir oldincludedir
includedir includedir
runstatedir
localstatedir localstatedir
sharedstatedir sharedstatedir
sysconfdir sysconfdir
@ -762,6 +762,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc' sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com' sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var' localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include' includedir='${prefix}/include'
oldincludedir='/usr/include' oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}' docdir='${datarootdir}/doc/${PACKAGE}'
@ -1014,6 +1015,15 @@ do
| -silent | --silent | --silen | --sile | --sil) | -silent | --silent | --silen | --sile | --sil)
silent=yes ;; silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;; ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@ -1151,7 +1161,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \ datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir libdir localedir mandir runstatedir
do do
eval ac_val=\$$ac_var eval ac_val=\$$ac_var
# Remove trailing slashes. # Remove trailing slashes.
@ -1304,6 +1314,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var] --localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib] --libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include] --includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include] --oldincludedir=DIR C header files for non-gcc [/usr/include]
@ -2560,6 +2571,11 @@ else
NOTMAINT='' NOTMAINT=''
fi fi
if test -z "$ETAGS"; then
ETAGS=etags
fi
# Do we have a single-tree copy of texinfo? Even if we do, we can't # Do we have a single-tree copy of texinfo? Even if we do, we can't
# rely on it - libiberty is built before texinfo. # rely on it - libiberty is built before texinfo.
# Extract the first word of "makeinfo", so it can be a program name with args. # Extract the first word of "makeinfo", so it can be a program name with args.
@ -2931,144 +2947,6 @@ else
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
$as_echo_n "checking for -plugin option... " >&6; }
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
fi
if test x$plugin_so != x$plugin; then
plugin_option="--plugin $plugin_so"
break
fi
done
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
$as_echo "$AR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
$as_echo "$ac_ct_AR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_AR" = x; then
AR=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
else
AR="$ac_cv_prog_AR"
fi
if test "${AR}" = "" ; then
as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
fi
touch conftest.c
${AR} $plugin_option rc conftest.a conftest.c
if test "$?" != 0; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
plugin_option=
fi
rm -f conftest.*
if test -n "$plugin_option"; then
PLUGIN_OPTION="$plugin_option"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
$as_echo "$plugin_option" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test -n "$PLUGIN_OPTION"; then
if $AR --help 2>&1 | grep -q "\--plugin"; then
AR_PLUGIN_OPTION="$PLUGIN_OPTION"
fi
if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
fi
fi
# Add --enable-multilib to configure. # Add --enable-multilib to configure.
# Default to --enable-multilib # Default to --enable-multilib
# Check whether --enable-multilib was given. # Check whether --enable-multilib was given.
@ -6155,9 +6033,16 @@ vars="sys_errlist sys_nerr sys_siglist"
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \ checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \ getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
realpath setrlimit sbrk spawnve spawnvpe strerror strsignal sysconf sysctl \ realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \
sysmp table times wait3 wait4" sysmp table times wait3 wait4"
# Darwin has sbrk, but it is deprecated and that produces build-time warnings
# so do not check for it.
case "${host}" in
*-*-darwin*) ;;
*) checkfuncs="$checkfuncs sbrk"
esac
# These are neither executed nor required, but they help keep # These are neither executed nor required, but they help keep
# autoheader happy without adding a bunch of text to acconfig.h. # autoheader happy without adding a bunch of text to acconfig.h.
if test "x" = "y"; then if test "x" = "y"; then
@ -7386,7 +7271,10 @@ fi
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_REALLOC $ac_have_decl #define HAVE_DECL_REALLOC $ac_have_decl
_ACEOF _ACEOF
ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default"
case "${host}" in
*-*-darwin*) ;; # Darwin's sbrk implementation is deprecated.
*) ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default"
if test "x$ac_cv_have_decl_sbrk" = xyes; then : if test "x$ac_cv_have_decl_sbrk" = xyes; then :
ac_have_decl=1 ac_have_decl=1
else else
@ -7396,7 +7284,8 @@ fi
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_SBRK $ac_have_decl #define HAVE_DECL_SBRK $ac_have_decl
_ACEOF _ACEOF
;;
esac
ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default" ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default"
if test "x$ac_cv_have_decl_strtol" = xyes; then : if test "x$ac_cv_have_decl_strtol" = xyes; then :
ac_have_decl=1 ac_have_decl=1

View File

@ -61,6 +61,11 @@ fi
AC_SUBST(MAINT)dnl AC_SUBST(MAINT)dnl
AC_SUBST(NOTMAINT)dnl AC_SUBST(NOTMAINT)dnl
if test -z "$ETAGS"; then
ETAGS=etags
fi
AC_SUBST([ETAGS])
# Do we have a single-tree copy of texinfo? Even if we do, we can't # Do we have a single-tree copy of texinfo? Even if we do, we can't
# rely on it - libiberty is built before texinfo. # rely on it - libiberty is built before texinfo.
AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
@ -108,18 +113,6 @@ dnl to call AC_CHECK_PROG.
AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(RANLIB, ranlib, :)
GCC_PLUGIN_OPTION(PLUGIN_OPTION)
if test -n "$PLUGIN_OPTION"; then
if $AR --help 2>&1 | grep -q "\--plugin"; then
AR_PLUGIN_OPTION="$PLUGIN_OPTION"
AC_SUBST(AR_PLUGIN_OPTION)
fi
if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
AC_SUBST(RANLIB_PLUGIN_OPTION)
fi
fi
dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB. dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB.
# Add --enable-multilib to configure. # Add --enable-multilib to configure.
# Default to --enable-multilib # Default to --enable-multilib
@ -407,9 +400,16 @@ vars="sys_errlist sys_nerr sys_siglist"
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \ checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \ getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
realpath setrlimit sbrk spawnve spawnvpe strerror strsignal sysconf sysctl \ realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \
sysmp table times wait3 wait4" sysmp table times wait3 wait4"
# Darwin has sbrk, but it is deprecated and that produces build-time warnings
# so do not check for it.
case "${host}" in
*-*-darwin*) ;;
*) checkfuncs="$checkfuncs sbrk"
esac
# These are neither executed nor required, but they help keep # These are neither executed nor required, but they help keep
# autoheader happy without adding a bunch of text to acconfig.h. # autoheader happy without adding a bunch of text to acconfig.h.
if test "x" = "y"; then if test "x" = "y"; then
@ -707,7 +707,11 @@ if test -z "${setobjs}"; then
AC_CHECK_FUNCS($checkfuncs) AC_CHECK_FUNCS($checkfuncs)
AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf]) AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf])
AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc, sbrk]) AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc])
case "${host}" in
*-*-darwin*) ;; # Darwin's sbrk implementation is deprecated.
*) AC_CHECK_DECLS([sbrk]);;
esac
AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull]) AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull])
AC_CHECK_DECLS([strverscmp]) AC_CHECK_DECLS([strverscmp])
AC_CHECK_DECLS([strnlen]) AC_CHECK_DECLS([strnlen])

View File

@ -3884,10 +3884,11 @@ d_clone_suffix (struct d_info *di, struct demangle_component *encoding)
const char *pend = suffix; const char *pend = suffix;
struct demangle_component *n; struct demangle_component *n;
if (*pend == '.' && (IS_LOWER (pend[1]) || pend[1] == '_')) if (*pend == '.' && (IS_LOWER (pend[1]) || IS_DIGIT (pend[1])
|| pend[1] == '_'))
{ {
pend += 2; pend += 2;
while (IS_LOWER (*pend) || *pend == '_') while (IS_LOWER (*pend) || IS_DIGIT (*pend) || *pend == '_')
++pend; ++pend;
} }
while (*pend == '.' && IS_DIGIT (pend[1])) while (*pend == '.' && IS_DIGIT (pend[1]))

View File

@ -191,7 +191,8 @@ static const char *dlang_function_args (string *, const char *,
static const char *dlang_type (string *, const char *, struct dlang_info *); static const char *dlang_type (string *, const char *, struct dlang_info *);
static const char *dlang_value (string *, const char *, const char *, char); static const char *dlang_value (string *, const char *, const char *, char,
struct dlang_info *);
static const char *dlang_parse_qualified (string *, const char *, static const char *dlang_parse_qualified (string *, const char *,
struct dlang_info *, int); struct dlang_info *, int);
@ -252,15 +253,15 @@ dlang_hexdigit (const char *mangled, char *ret)
c = mangled[0]; c = mangled[0];
if (!ISDIGIT (c)) if (!ISDIGIT (c))
(*ret) = (c - (ISUPPER (c) ? 'A' : 'a') + 10); *ret = c - (ISUPPER (c) ? 'A' : 'a') + 10;
else else
(*ret) = (c - '0'); *ret = c - '0';
c = mangled[1]; c = mangled[1];
if (!ISDIGIT (c)) if (!ISDIGIT (c))
(*ret) = (*ret << 4) | (c - (ISUPPER (c) ? 'A' : 'a') + 10); *ret = (*ret << 4) | (c - (ISUPPER (c) ? 'A' : 'a') + 10);
else else
(*ret) = (*ret << 4) | (c - '0'); *ret = (*ret << 4) | (c - '0');
mangled += 2; mangled += 2;
@ -337,7 +338,7 @@ dlang_decode_backref (const char *mangled, long *ret)
static const char * static const char *
dlang_backref (const char *mangled, const char **ret, struct dlang_info *info) dlang_backref (const char *mangled, const char **ret, struct dlang_info *info)
{ {
(*ret) = NULL; *ret = NULL;
if (mangled == NULL || *mangled != 'Q') if (mangled == NULL || *mangled != 'Q')
return NULL; return NULL;
@ -355,7 +356,7 @@ dlang_backref (const char *mangled, const char **ret, struct dlang_info *info)
return NULL; return NULL;
/* Set the position of the back reference. */ /* Set the position of the back reference. */
(*ret) = qpos - refpos; *ret = qpos - refpos;
return mangled; return mangled;
} }
@ -380,7 +381,7 @@ dlang_symbol_backref (string *decl, const char *mangled,
/* Must point to a simple identifier. */ /* Must point to a simple identifier. */
backref = dlang_number (backref, &len); backref = dlang_number (backref, &len);
if (backref == NULL) if (backref == NULL || strlen(backref) < len)
return NULL; return NULL;
backref = dlang_lname (decl, backref, len); backref = dlang_lname (decl, backref, len);
@ -573,9 +574,11 @@ dlang_attributes (string *decl, const char *mangled)
case 'g': case 'g':
case 'h': case 'h':
case 'k': case 'k':
case 'n':
/* inout parameter is represented as 'Ng'. /* inout parameter is represented as 'Ng'.
vector parameter is represented as 'Nh'. vector parameter is represented as 'Nh'.
return paramenter is represented as 'Nk'. return parameter is represented as 'Nk'.
typeof(*null) parameter is represented as 'Nn'.
If we see this, then we know we're really in the If we see this, then we know we're really in the
parameter list. Rewind and break. */ parameter list. Rewind and break. */
mangled--; mangled--;
@ -787,6 +790,12 @@ dlang_type (string *decl, const char *mangled, struct dlang_info *info)
string_append (decl, ")"); string_append (decl, ")");
return mangled; return mangled;
} }
else if (*mangled == 'n') /* typeof(*null) */
{
mangled++;
string_append (decl, "typeof(*null)");
return mangled;
}
else else
return NULL; return NULL;
case 'A': /* dynamic array (T[]) */ case 'A': /* dynamic array (T[]) */
@ -866,7 +875,7 @@ dlang_type (string *decl, const char *mangled, struct dlang_info *info)
szmods = string_length (&mods); szmods = string_length (&mods);
/* Back referenced function type. */ /* Back referenced function type. */
if (*mangled == 'Q') if (mangled && *mangled == 'Q')
mangled = dlang_type_backref (decl, mangled, info, 1); mangled = dlang_type_backref (decl, mangled, info, 1);
else else
mangled = dlang_function_type (decl, mangled, info); mangled = dlang_function_type (decl, mangled, info);
@ -884,7 +893,7 @@ dlang_type (string *decl, const char *mangled, struct dlang_info *info)
/* Basic types */ /* Basic types */
case 'n': case 'n':
mangled++; mangled++;
string_append (decl, "none"); string_append (decl, "typeof(null)");
return mangled; return mangled;
case 'v': case 'v':
mangled++; mangled++;
@ -1035,6 +1044,25 @@ dlang_identifier (string *decl, const char *mangled, struct dlang_info *info)
&& (mangled[2] == 'T' || mangled[2] == 'U')) && (mangled[2] == 'T' || mangled[2] == 'U'))
return dlang_parse_template (decl, mangled, info, len); return dlang_parse_template (decl, mangled, info, len);
/* There can be multiple different declarations in the same function that have
the same mangled name. To make the mangled names unique, a fake parent in
the form `__Sddd' is added to the symbol. */
if (len >= 4 && mangled[0] == '_' && mangled[1] == '_' && mangled[2] == 'S')
{
const char *numptr = mangled + 3;
while (numptr < (mangled + len) && ISDIGIT (*numptr))
numptr++;
if (mangled + len == numptr)
{
/* Skip over the fake parent. */
mangled += len;
return dlang_identifier (decl, mangled, info);
}
/* else demangle it as a plain identifier. */
}
return dlang_lname (decl, mangled, len); return dlang_lname (decl, mangled, len);
} }
@ -1378,7 +1406,8 @@ dlang_parse_string (string *decl, const char *mangled)
/* Extract the static array value from MANGLED and append it to DECL. /* Extract the static array value from MANGLED and append it to DECL.
Return the remaining string on success or NULL on failure. */ Return the remaining string on success or NULL on failure. */
static const char * static const char *
dlang_parse_arrayliteral (string *decl, const char *mangled) dlang_parse_arrayliteral (string *decl, const char *mangled,
struct dlang_info *info)
{ {
unsigned long elements; unsigned long elements;
@ -1389,7 +1418,7 @@ dlang_parse_arrayliteral (string *decl, const char *mangled)
string_append (decl, "["); string_append (decl, "[");
while (elements--) while (elements--)
{ {
mangled = dlang_value (decl, mangled, NULL, '\0'); mangled = dlang_value (decl, mangled, NULL, '\0', info);
if (mangled == NULL) if (mangled == NULL)
return NULL; return NULL;
@ -1404,7 +1433,8 @@ dlang_parse_arrayliteral (string *decl, const char *mangled)
/* Extract the associative array value from MANGLED and append it to DECL. /* Extract the associative array value from MANGLED and append it to DECL.
Return the remaining string on success or NULL on failure. */ Return the remaining string on success or NULL on failure. */
static const char * static const char *
dlang_parse_assocarray (string *decl, const char *mangled) dlang_parse_assocarray (string *decl, const char *mangled,
struct dlang_info *info)
{ {
unsigned long elements; unsigned long elements;
@ -1415,12 +1445,12 @@ dlang_parse_assocarray (string *decl, const char *mangled)
string_append (decl, "["); string_append (decl, "[");
while (elements--) while (elements--)
{ {
mangled = dlang_value (decl, mangled, NULL, '\0'); mangled = dlang_value (decl, mangled, NULL, '\0', info);
if (mangled == NULL) if (mangled == NULL)
return NULL; return NULL;
string_append (decl, ":"); string_append (decl, ":");
mangled = dlang_value (decl, mangled, NULL, '\0'); mangled = dlang_value (decl, mangled, NULL, '\0', info);
if (mangled == NULL) if (mangled == NULL)
return NULL; return NULL;
@ -1435,7 +1465,8 @@ dlang_parse_assocarray (string *decl, const char *mangled)
/* Extract the struct literal value for NAME from MANGLED and append it to DECL. /* Extract the struct literal value for NAME from MANGLED and append it to DECL.
Return the remaining string on success or NULL on failure. */ Return the remaining string on success or NULL on failure. */
static const char * static const char *
dlang_parse_structlit (string *decl, const char *mangled, const char *name) dlang_parse_structlit (string *decl, const char *mangled, const char *name,
struct dlang_info *info)
{ {
unsigned long args; unsigned long args;
@ -1449,7 +1480,7 @@ dlang_parse_structlit (string *decl, const char *mangled, const char *name)
string_append (decl, "("); string_append (decl, "(");
while (args--) while (args--)
{ {
mangled = dlang_value (decl, mangled, NULL, '\0'); mangled = dlang_value (decl, mangled, NULL, '\0', info);
if (mangled == NULL) if (mangled == NULL)
return NULL; return NULL;
@ -1464,7 +1495,8 @@ dlang_parse_structlit (string *decl, const char *mangled, const char *name)
/* Extract the value from MANGLED and append it to DECL. /* Extract the value from MANGLED and append it to DECL.
Return the remaining string on success or NULL on failure. */ Return the remaining string on success or NULL on failure. */
static const char * static const char *
dlang_value (string *decl, const char *mangled, const char *name, char type) dlang_value (string *decl, const char *mangled, const char *name, char type,
struct dlang_info *info)
{ {
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return NULL; return NULL;
@ -1525,15 +1557,24 @@ dlang_value (string *decl, const char *mangled, const char *name, char type)
case 'A': case 'A':
mangled++; mangled++;
if (type == 'H') if (type == 'H')
mangled = dlang_parse_assocarray (decl, mangled); mangled = dlang_parse_assocarray (decl, mangled, info);
else else
mangled = dlang_parse_arrayliteral (decl, mangled); mangled = dlang_parse_arrayliteral (decl, mangled, info);
break; break;
/* Struct values. */ /* Struct values. */
case 'S': case 'S':
mangled++; mangled++;
mangled = dlang_parse_structlit (decl, mangled, name); mangled = dlang_parse_structlit (decl, mangled, name, info);
break;
/* Function literal symbol. */
case 'f':
mangled++;
if (strncmp (mangled, "_D", 2) != 0
|| !dlang_symbol_name_p (mangled + 2, info))
return NULL;
mangled = dlang_parse_mangle (decl, mangled, info);
break; break;
default: default:
@ -1609,13 +1650,19 @@ dlang_parse_qualified (string *decl, const char *mangled,
size_t n = 0; size_t n = 0;
do do
{ {
/* Skip over anonymous symbols. */
if (*mangled == '0')
{
do
mangled++;
while (*mangled == '0');
continue;
}
if (n++) if (n++)
string_append (decl, "."); string_append (decl, ".");
/* Skip over anonymous symbols. */
while (*mangled == '0')
mangled++;
mangled = dlang_identifier (decl, mangled, info); mangled = dlang_identifier (decl, mangled, info);
/* Consume the encoded arguments. However if this is not followed by the /* Consume the encoded arguments. However if this is not followed by the
@ -1806,7 +1853,7 @@ dlang_template_args (string *decl, const char *mangled, struct dlang_info *info)
string_need (&name, 1); string_need (&name, 1);
*(name.p) = '\0'; *(name.p) = '\0';
mangled = dlang_value (decl, mangled, name.b, type); mangled = dlang_value (decl, mangled, name.b, type, info);
string_delete (&name); string_delete (&name);
break; break;
} }

View File

@ -39,6 +39,10 @@ Boston, MA 02110-1301, USA. */
#if defined(_WIN32) && !defined(__CYGWIN__) #if defined(_WIN32) && !defined(__CYGWIN__)
#include <windows.h> #include <windows.h>
#endif #endif
#if HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
#ifndef R_OK #ifndef R_OK
#define R_OK 4 #define R_OK 4
@ -76,7 +80,17 @@ try_dir (const char *dir, const char *base)
return base; return base;
if (dir != 0 if (dir != 0
&& access (dir, R_OK | W_OK | X_OK) == 0) && access (dir, R_OK | W_OK | X_OK) == 0)
return dir; {
/* Check to make sure dir is actually a directory. */
#ifdef S_ISDIR
struct stat s;
if (stat (dir, &s))
return NULL;
if (!S_ISDIR (s.st_mode))
return NULL;
#endif
return dir;
}
return 0; return 0;
} }

View File

@ -1225,6 +1225,11 @@ simple_object_mach_o_write_segment (simple_object_write *sobj, int descriptor,
index[4 * i] -= index[0]; index[4 * i] -= index[0];
index[0] = 0; index[0] = 0;
/* Swap the indices, if required. */
for (i = 0; i < (nsects_in * 4); ++i)
set_32 ((unsigned char *) &index[i], index[i]);
sechdr_offset += sechdrsize; sechdr_offset += sechdrsize;
/* Write out the section names. /* Write out the section names.

View File

@ -18,6 +18,14 @@ _Dmain
D main D main
# #
--format=dlang --format=dlang
_D8demangleZ
demangle
#
--format=dlang
_D8demangle4testZ
demangle.test
#
--format=dlang
_D8demangle4testPFLAiYi _D8demangle4testPFLAiYi
demangle.test demangle.test
# #
@ -83,7 +91,11 @@ demangle.test(ulong)
# #
--format=dlang --format=dlang
_D8demangle4testFnZv _D8demangle4testFnZv
demangle.test(none) demangle.test(typeof(null))
#
--format=dlang
_D8demangle4testFNnZv
demangle.test(typeof(*null))
# #
--format=dlang --format=dlang
_D8demangle4testFoZv _D8demangle4testFoZv
@ -969,6 +981,10 @@ demangle.test(char)
_D8demangle000000004testFaZv _D8demangle000000004testFaZv
demangle.test(char) demangle.test(char)
# #
--format=dlang
_D8demangle__T3abcS_DQt10__lambda13FNaNbNiNfZiZQBhFZi
demangle.abc!(demangle.__lambda13()).abc()
#
# Unittests # Unittests
# #
--format=dlang --format=dlang
@ -992,6 +1008,10 @@ _D00
_D00 _D00
# #
--format=dlang --format=dlang
_D01_D
_D01_D
#
--format=dlang
_D9223372036854775817 _D9223372036854775817
_D9223372036854775817 _D9223372036854775817
# #
@ -1414,3 +1434,39 @@ std.algorithm.iteration.FilterResult!(std.typecons.Tuple!(int, "a", int, "b", in
--format=dlang --format=dlang
_D3std3uni__T6toCaseS_DQvQt12toLowerIndexFNaNbNiNewZtVii1043S_DQCjQCi10toLowerTabFNaNbNiNemZwSQDo5ascii7toLowerTAyaZQDzFNaNeQmZ14__foreachbody2MFNaNeKmKwZ14__foreachbody3MFNaNeKwZi _D3std3uni__T6toCaseS_DQvQt12toLowerIndexFNaNbNiNewZtVii1043S_DQCjQCi10toLowerTabFNaNbNiNemZwSQDo5ascii7toLowerTAyaZQDzFNaNeQmZ14__foreachbody2MFNaNeKmKwZ14__foreachbody3MFNaNeKwZi
std.uni.toCase!(std.uni.toLowerIndex(dchar), 1043, std.uni.toLowerTab(ulong), std.ascii.toLower, immutable(char)[]).toCase(immutable(char)[]).__foreachbody2(ref ulong, ref dchar).__foreachbody3(ref dchar) std.uni.toCase!(std.uni.toLowerIndex(dchar), 1043, std.uni.toLowerTab(ulong), std.ascii.toLower, immutable(char)[]).toCase(immutable(char)[]).__foreachbody2(ref ulong, ref dchar).__foreachbody3(ref dchar)
#
--format=dlang
_D8demangle4mainFZ1xi
demangle.main().x
#
--format=dlang
_D8demangle4mainFZ4__S11xi
demangle.main().x
#
--format=dlang
_D8demangle4mainFZ1fMFNaNbNiNfZv
demangle.main().f()
#
--format=dlang
_D8demangle4mainFZ4__S11fMFNaNbNiNfZv
demangle.main().f()
#
--format=dlang
_D3mod4funcFZ__T6nestedTiZQkMFNaNbNiNfZi
mod.func().nested!(int).nested()
#
--format=dlang
_D3mod4funcFZ__T6nestedTiZ4__S1QpMFNaNbNiNfZi
mod.func().nested!(int).nested()
#
--format=dlang
_D6mangle__T8fun21753VSQv6S21753S1f_DQBj10__lambda71MFNaNbNiNfZvZQCbQp
mangle.fun21753!(mangle.S21753(mangle.__lambda71())).fun21753
#
--format=dlang
_D8demangle9anonymous0Z
demangle.anonymous
#
--format=dlang
_D8demangle9anonymous03fooZ
demangle.anonymous.foo

View File

@ -1164,6 +1164,11 @@ foo(int) [clone ._omp_cpyfn.6]
foo foo
# #
--format=gnu-v3 --no-params --format=gnu-v3 --no-params
_Z3fooPfS_S_j.sse4_1.2
foo(float*, float*, float*, unsigned int) [clone .sse4_1.2]
foo
#
--format=gnu-v3 --no-params
_Z1fIKFvvES0_Evv _Z1fIKFvvES0_Evv
void f<void () const, void () const>() void f<void () const, void () const>()
f<void () const, void () const> f<void () const, void () const>

View File

@ -87,7 +87,9 @@ extern "C" {
void *malloc (size_t); void *malloc (size_t);
void *realloc (void *, size_t); void *realloc (void *, size_t);
void *calloc (size_t, size_t); void *calloc (size_t, size_t);
#ifdef HAVE_SBRK
void *sbrk (ptrdiff_t); void *sbrk (ptrdiff_t);
#endif
# ifdef __cplusplus # ifdef __cplusplus
} }
# endif /* __cplusplus */ # endif /* __cplusplus */