* 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
+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
const char s1[] = "123";
char p[32] = "";
-char *s2 = "defg";
-char *s3 = "FGH";
-size_t l1 = 1;
+volatile char *s2 = "defg"; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
void
__attribute__((noinline))
#include "chk.h"
-const char s1[] = "123";
+const char s1[] = "123";
char p[32] = "";
-char *s2 = "defg";
-char *s3 = "FGH";
-size_t l1 = 1;
+volatile char *s2 = "defg"; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
void
__attribute__((noinline))
#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 *
my_memcpy (void *d, const void *s, size_t n)
{
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
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 *
my_memset (void *d, int c, size_t n)
{
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
my_bzero (void *d, size_t n)
{
const char s1[] = "123";
char p[32] = "";
-char *s2 = "defg";
-char *s3 = "FGH";
-size_t l1 = 1;
+volatile char *s2 = "defg"; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
void
__attribute__((noinline))
char buffer[32];
int argc = 1;
-size_t l1 = 1;
-char *s3 = "FGH";
+volatile size_t l1 = 1; /* prevent constant propagation to happen when whole program assumptions are made. */
+volatile char *s3 = "FGH"; /* prevent constant propagation to happen when whole program assumptions are made. */
char *s4;
void