Skip to content

Commit

Permalink
* stdio-common/_itoa.h: Define _itoa and _fitoa for 64-bit platforms.
Browse files Browse the repository at this point in the history
	* malloc/mtrace.c: Revert last change.
	* posix/wordexp.c: Likewise.
  • Loading branch information
Ulrich Drepper committed Jan 25, 2007
1 parent 9d6cde3 commit 7fbc878
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 27 deletions.
6 changes: 6 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2007-01-24 Ulrich Drepper <drepper@redhat.com>

* stdio-common/_itoa.h: Define _itoa and _fitoa for 64-bit platforms.
* malloc/mtrace.c: Revert last change.
* posix/wordexp.c: Likewise.

2007-01-24 Jakub Jelinek <jakub@redhat.com>

* sysdeps/i386/bits/byteswap.h (__bswap_32): Add __nocona__, __core2__
Expand Down
26 changes: 10 additions & 16 deletions malloc/mtrace.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* More debugging hooks for `malloc'.
Copyright (C) 1991-1994,1996-2004, 2007 Free Software Foundation, Inc.
Copyright (C) 1991-1994,1996-2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written April 2, 1991 by John Gilmore of Cygnus Support.
Based on mcheck.c by Mike Haertel.
Expand Down Expand Up @@ -28,7 +28,6 @@

#include <dlfcn.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
Expand Down Expand Up @@ -114,20 +113,15 @@ tr_where (caller)
buf = alloca (len + 6 + 2 * sizeof (void *));

buf[0] = '(';

char *cp = __stpcpy (__mempcpy (buf + 1, info.dli_sname, len),
caller >= (__ptr_t) info.dli_saddr
? "+0x" : "-0x");
intptr_t offset = (caller >= (const __ptr_t) info.dli_saddr
? caller - (const __ptr_t) info.dli_saddr
: (const __ptr_t) info.dli_saddr - caller);
# if LLONG_MAX == LONG_MAX
cp = _fitoa_word (offset, cp, 16, 0);
# else
cp = _fitoa (offset, cp, 16, 0);
# endif

__stpcpy (cp, ")");
__stpcpy (_fitoa (caller >= (const __ptr_t) info.dli_saddr
? caller - (const __ptr_t) info.dli_saddr
: (const __ptr_t) info.dli_saddr - caller,
__stpcpy (__mempcpy (buf + 1, info.dli_sname,
len),
caller >= (__ptr_t) info.dli_saddr
? "+0x" : "-0x"),
16, 0),
")");
}

fprintf (mallstream, "@ %s%s%s[%p] ",
Expand Down
12 changes: 3 additions & 9 deletions posix/wordexp.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* POSIX.2 wordexp implementation.
Copyright (C) 1997-2003, 2005, 2006, 2007 Free Software Foundation, Inc.
Copyright (C) 1997-2002, 2003, 2005, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
Expand All @@ -25,7 +25,6 @@
#include <fnmatch.h>
#include <glob.h>
#include <libintl.h>
#include <limits.h>
#include <paths.h>
#include <pwd.h>
#include <signal.h>
Expand Down Expand Up @@ -758,13 +757,8 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
convertme = numresult;

result[20] = '\0';
char *numstr;
#if LLONG_MAX == LONG_MAX
numstr = _itoa_word (convertme, &result[20], 10, 0);
#else
numstr = _itoa (convertme, &result[20], 10, 0);
#endif
*word = w_addstr (*word, word_length, max_length, numstr);
*word = w_addstr (*word, word_length, max_length,
_itoa (convertme, &result[20], 10, 0));
free (expr);
return *word ? 0 : WRDE_NOSPACE;
}
Expand Down
13 changes: 11 additions & 2 deletions stdio-common/_itoa.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Internal function for converting integers to ASCII.
Copyright (C) 1994,95,96,97,98,99,2002,2003 Free Software Foundation, Inc.
Copyright (C) 1994-1999,2002,2003,2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Expand All @@ -19,7 +19,8 @@

#ifndef _ITOA_H
#define _ITOA_H
#include <sys/cdefs.h>

#include <limits.h>

/* Convert VALUE into ASCII in base BASE (2..36).
Write backwards starting the character just before BUFLIM.
Expand Down Expand Up @@ -81,4 +82,12 @@ extern char *_fitoa_word (unsigned long value, char *buf, unsigned int base,
extern char *_fitoa (unsigned long long value, char *buf, unsigned int base,
int upper_case) attribute_hidden;

#if LONG_MAX == LLONG_MAX
/* No need for special long long versions. */
# define _itoa(value, buf, base, upper_case) \
_itoa_word (value, buf, base, upper_case)
# define _fitoa(value, buf, base, upper_case) \
_fitoa_word (value, buf, base, upper_case)
#endif

#endif /* itoa.h */

0 comments on commit 7fbc878

Please sign in to comment.