re PR target/34777 (uClibc-0.9.29 compilation error for sh4 arch with gcc-4.x)

PR target/34777
	* gcc.target/sh/torture/sh-torture.exp: New.
	* gcc.target/sh/torture/pr34777.c: New.

From-SVN: r192478
This commit is contained in:
Oleg Endo 2012-10-15 21:59:21 +00:00
parent 9945a87681
commit e67ae07334
3 changed files with 77 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2012-10-15 Oleg Endo <olegendo@gcc.gnu.org>
PR target/34777
* gcc.target/sh/torture/sh-torture.exp: New.
* gcc.target/sh/torture/pr34777.c: New.
2012-10-15 Matthias Klose <doko@ubuntu.com> 2012-10-15 Matthias Klose <doko@ubuntu.com>
* lib/target-supports.exp (check_profiling_available): Match * lib/target-supports.exp (check_profiling_available): Match

View File

@ -0,0 +1,30 @@
/* { dg-do compile { target "sh*-*-*" } } */
/* { dg-additional-options "-fschedule-insns -fPIC -mprefergot" } */
/* { dg-skip-if "" { "sh*-*-*" } { "-m5*" } { "" } } */
static __inline __attribute__ ((__always_inline__)) void *
_dl_mmap (void * start, int length, int prot, int flags, int fd,
int offset)
{
register long __sc3 __asm__ ("r3") = 90;
register long __sc4 __asm__ ("r4") = (long) start;
register long __sc5 __asm__ ("r5") = (long) length;
register long __sc6 __asm__ ("r6") = (long) prot;
register long __sc7 __asm__ ("r7") = (long) flags;
register long __sc0 __asm__ ("r0") = (long) fd;
register long __sc1 __asm__ ("r1") = (long) offset;
__asm__ __volatile__ ("trapa %1"
: "=z" (__sc0)
: "i" (0x10 + 6), "0" (__sc0), "r" (__sc4),
"r" (__sc5), "r" (__sc6), "r" (__sc7),
"r" (__sc3), "r" (__sc1)
: "memory" );
}
extern int _dl_pagesize;
void
_dl_dprintf(int fd, const char *fmt, ...)
{
static char *buf;
buf = _dl_mmap ((void *) 0, _dl_pagesize, 0x1 | 0x2, 0x02 | 0x20, -1, 0);
}

View File

@ -0,0 +1,41 @@
# Copyright (C) 2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# GCC testsuite that uses the `gcc-dg.exp' driver, looping over
# optimization options.
# Exit immediately if this isn't a SH target.
if { ![istarget sh*-*-*] } then {
return
}
# Load support procs.
load_lib gcc-dg.exp
# If a testcase doesn't have special options, use these.
global DEFAULT_CFLAGS
if ![info exists DEFAULT_CFLAGS] then {
set DEFAULT_CFLAGS " -ansi -pedantic-errors"
}
# Initialize `dg'.
dg-init
# Main loop.
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] $DEFAULT_CFLAGS
# All done.
dg-finish