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:
parent
9945a87681
commit
e67ae07334
@ -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
|
||||||
|
30
gcc/testsuite/gcc.target/sh/torture/pr34777.c
Normal file
30
gcc/testsuite/gcc.target/sh/torture/pr34777.c
Normal 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);
|
||||||
|
}
|
41
gcc/testsuite/gcc.target/sh/torture/sh-torture.exp
Normal file
41
gcc/testsuite/gcc.target/sh/torture/sh-torture.exp
Normal 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
|
Loading…
Reference in New Issue
Block a user