OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [20050503-1.c] - Blame information for rev 774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* PR middle-end/21265
2
   Test whether tail call information is propagated through builtin
3
   expanders.  */
4
/* { dg-do compile } */
5
/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && { ia32 && { ! nonpic } } } { "*" } { "" } } */
6
/* { dg-options "-O2" } */
7
 
8
typedef __SIZE_TYPE__ size_t;
9
 
10
#define F(n, rettype, name, args, callargs) \
11
extern rettype name args;                               \
12
rettype test##n args                                    \
13
{                                                       \
14
  return name callargs;                                 \
15
}
16
#define F1(n, rettype, name, t1, callargs) \
17
  F (n, rettype, name, (t1 a1), callargs)
18
#define F2(n, rettype, name, t1, t2, callargs) \
19
  F (n, rettype, name, (t1 a1, t2 a2), callargs)
20
#define F3(n, rettype, name, t1, t2, t3, callargs) \
21
  F (n, rettype, name, (t1 a1, t2 a2, t3 a3), callargs)
22
 
23
F3 (1a, void *, memcpy, void *, const void *, size_t, (a1, a2, a3))
24
F3 (1b, void *, memcpy, void *, const void *, size_t, (a1, a2, 10))
25
F3 (2a, void *, mempcpy, void *, const void *, size_t, (a1, a2, a3))
26
F3 (2b, void *, mempcpy, void *, const void *, size_t, (a1, a2, 10))
27
F3 (3a, void *, memmove, void *, const void *, size_t, (a1, a2, a3))
28
F3 (3b, void *, memmove, void *, const void *, size_t, (a1, "abcdefghijklmno", a3))
29
F3 (4a, void *, memset, void *, int, size_t, (a1, a2, a3))
30
F3 (4b, void *, memset, void *, int, size_t, (a1, a2, 156))
31
F3 (4c, void *, memset, void *, int, size_t, (a1, 0, a3))
32
F3 (4d, void *, memset, void *, int, size_t, (a1, 0, 10000))
33
F3 (5a, int, memcmp, const void *, const void *, size_t, (a1, a2, a3))
34
F3 (5b, int, memcmp, const void *, const void *, size_t, (a1, "abcdefghijkl", a3))
35
F2 (6, char *, strcpy, char *, const char *, (a1, a2))
36
F2 (7, char *, stpcpy, char *, const char *, (a1, a2))
37
F3 (8, char *, strncpy, char *, const char *, size_t, (a1, a2, a3))
38
F3 (9, char *, stpncpy, char *, const char *, size_t, (a1, a2, a3))
39
F2 (10, char *, strcat, char *, const char *, (a1, a2))
40
F3 (11, char *, strncat, char *, const char *, size_t, (a1, a2, a3))
41
F1 (12a, size_t, strlen, const char *, (a1))
42
F1 (12b, size_t, strlen, const char *, ("foobar"))
43
F2 (13a, int, strcmp, const char *, const char *, (a1, a2))
44
F2 (13b, int, strcmp, const char *, const char *, (a1, "abcdefghijklm"))
45
F3 (14a, int, strncmp, const char *, const char *, size_t, (a1, a2, a3))
46
F3 (14b, int, strncmp, const char *, const char *, size_t, (a1, "abcdefghijklm", 10))
47
F2 (15, char *, strchr, const char *, int, (a1, a2))
48
 
49
/* All the calls above should be tail call optimized on i?86/x86-64.  */
50
/* { dg-final { scan-assembler-not "call" { target i?86-*-linux* x86_64-*-linux* } } } */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.