Commit 804a780f by Jan Hubicka Committed by Jan Hubicka

Get builtins tests ready for linker plugin.

	* gcc.c-torture/execute/builtins/memcpy-chk.c (s2,s3,l1): Mark volatile.
	* gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memcpy, my_bcopy, my_memset,
	my_bzero): Mark used.
	* gcc.c-torture/execute/builtins/memset-chk.c (l1, l3): Mark volatile.
	* gcc.c-torture/execute/builtins/memmove-chk.c (s1,s2,s3,l1): Mark volatile.
	* gcc.c-torture/execute/builtins/mempcpy-chk.c (s2,s3,l1): Mark volatile

From-SVN: r168588
parent 17afc0fe
2011-01-07 Jan Hubicka <jh@suse.cz> 2011-01-07 Jan Hubicka <jh@suse.cz>
Get builtins tests ready for linker plugin.
* gcc.c-torture/execute/builtins/memcpy-chk.c (s2,s3,l1): Mark volatile.
* gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memcpy, my_bcopy, my_memset,
my_bzero): Mark used.
* gcc.c-torture/execute/builtins/memset-chk.c (l1, l3): Mark volatile.
* gcc.c-torture/execute/builtins/memmove-chk.c (s1,s2,s3,l1): Mark volatile.
* gcc.c-torture/execute/builtins/mempcpy-chk.c (s2,s3,l1): Mark volatile
2011-01-07 Jan Hubicka <jh@suse.cz>
PR tree-optimization/46367 PR tree-optimization/46367
* g++.dg/torture/pr46367.C: New file. * g++.dg/torture/pr46367.C: New file.
......
...@@ -12,9 +12,9 @@ extern int memcmp (const void *, const void *, size_t); ...@@ -12,9 +12,9 @@ extern int memcmp (const void *, const void *, size_t);
const char s1[] = "123"; const char s1[] = "123";
char p[32] = ""; char p[32] = "";
char *s2 = "defg"; volatile char *s2 = "defg"; /* prevent constant propagation to happen when whole program assumptions are made. */
char *s3 = "FGH"; volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
size_t l1 = 1; volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
void void
__attribute__((noinline)) __attribute__((noinline))
......
...@@ -11,11 +11,11 @@ extern int memcmp (const void *, const void *, size_t); ...@@ -11,11 +11,11 @@ extern int memcmp (const void *, const void *, size_t);
#include "chk.h" #include "chk.h"
const char s1[] = "123"; const char s1[] = "123";
char p[32] = ""; char p[32] = "";
char *s2 = "defg"; volatile char *s2 = "defg"; /* prevent constant propagation to happen when whole program assumptions are made. */
char *s3 = "FGH"; volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
size_t l1 = 1; volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
void void
__attribute__((noinline)) __attribute__((noinline))
......
...@@ -4,6 +4,9 @@ typedef __SIZE_TYPE__ size_t; ...@@ -4,6 +4,9 @@ typedef __SIZE_TYPE__ size_t;
#define TEST_ABORT if (inside_main) abort() #define TEST_ABORT if (inside_main) abort()
/* LTO code is at the present to able to track that asm alias my_bcopy on builtin
actually refers to this function. See PR47181. */
__attribute__ ((used))
void * void *
my_memcpy (void *d, const void *s, size_t n) my_memcpy (void *d, const void *s, size_t n)
{ {
...@@ -14,6 +17,9 @@ my_memcpy (void *d, const void *s, size_t n) ...@@ -14,6 +17,9 @@ my_memcpy (void *d, const void *s, size_t n)
return (char *) d; return (char *) d;
} }
/* LTO code is at the present to able to track that asm alias my_bcopy on builtin
actually refers to this function. See PR47181. */
__attribute__ ((used))
void void
my_bcopy (const void *s, void *d, size_t n) my_bcopy (const void *s, void *d, size_t n)
{ {
...@@ -31,6 +37,9 @@ my_bcopy (const void *s, void *d, size_t n) ...@@ -31,6 +37,9 @@ my_bcopy (const void *s, void *d, size_t n)
} }
} }
/* LTO code is at the present to able to track that asm alias my_bcopy on builtin
actually refers to this function. See PR47181. */
__attribute__ ((used))
void * void *
my_memset (void *d, int c, size_t n) my_memset (void *d, int c, size_t n)
{ {
...@@ -40,6 +49,9 @@ my_memset (void *d, int c, size_t n) ...@@ -40,6 +49,9 @@ my_memset (void *d, int c, size_t n)
return (char *) d; return (char *) d;
} }
/* LTO code is at the present to able to track that asm alias my_bcopy on builtin
actually refers to this function. See PR47181. */
__attribute__ ((used))
void void
my_bzero (void *d, size_t n) my_bzero (void *d, size_t n)
{ {
......
...@@ -13,9 +13,9 @@ extern int memcmp (const void *, const void *, size_t); ...@@ -13,9 +13,9 @@ extern int memcmp (const void *, const void *, size_t);
const char s1[] = "123"; const char s1[] = "123";
char p[32] = ""; char p[32] = "";
char *s2 = "defg"; volatile char *s2 = "defg"; /* prevent constant propagation to happen when whole program assumptions are made. */
char *s3 = "FGH"; volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
size_t l1 = 1; volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
void void
__attribute__((noinline)) __attribute__((noinline))
......
...@@ -13,8 +13,8 @@ extern int memcmp (const void *, const void *, size_t); ...@@ -13,8 +13,8 @@ extern int memcmp (const void *, const void *, size_t);
char buffer[32]; char buffer[32];
int argc = 1; int argc = 1;
size_t l1 = 1; volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
char *s3 = "FGH"; volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
char *s4; char *s4;
void void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment