summaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-10-05 18:55:54 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-10-05 18:55:54 +0000
commita2770a85393c56473dd092d8fe2355c254970811 (patch)
tree3f08c124b012b43d45c6dc5317707ba5f8e5e905 /gcc/gcc.c
parent4842028bea1728de18df992b531c96789dce0303 (diff)
downloadgcc-a2770a85393c56473dd092d8fe2355c254970811.tar.gz
* gcc.c (set_multilib_dir): Don't access *end.
Use memcpy instead of strncpy. Don't write beyond malloced buffer. (print_multilib_info): Don't show paths starting with ".:". * genmultilib: Add new option, "yes" if multilibs are enabled. Update comments. If multilibs not enabled, print .:${osdirout} for each directory. If multilibs are enabled, always print ${dirout}:${osdirout}, even if the two are the same. * Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib. Pass all MULTILIB_* variables to genmultilib even if --disable-multilib but MULTILIB_OSDIRNAMES is not empty. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57846 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index b9794fe3998..167dde77c39 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -6926,11 +6926,11 @@ set_multilib_dir ()
while (q < end && *q != ':')
q++;
- if (*q == ':')
+ if (q < end)
{
char *new_multilib_os_dir = xmalloc (end - q);
- strncpy (new_multilib_os_dir, q + 1, end - q - 1);
- new_multilib_os_dir[end - q] = '\0';
+ memcpy (new_multilib_os_dir, q + 1, end - q - 1);
+ new_multilib_os_dir[end - q - 1] = '\0';
multilib_os_dir = new_multilib_os_dir;
break;
}
@@ -6986,6 +6986,12 @@ print_multilib_info ()
++p;
}
+ /* When --disable-multilib was used but target defines
+ MULTILIB_OSDIRNAMES, entries starting with .: are there just
+ to find multilib_os_dir, so skip them from output. */
+ if (this_path[0] == '.' && this_path[1] == ':')
+ skip = 1;
+
/* Check for matches with the multilib_exclusions. We don't bother
with the '!' in either list. If any of the exclusion rules match
all of its options with the select rule, we skip it. */