* gcc.c-torture/execute/builtins/chk.h: Don't check !__PIE__.
Also check __pic__.
* lib/target-supports.exp (check_effective_target_nonpic): Likewise.
* gcc.dg/assign-warn-3.c: Use "static inline" instead of "inline".
Backport:
2007-03-21 Richard Sandiford <richard@codesourcery.com>
* gcc.c-torture/execute/builtins/chk.h (LOCAL): Define.
* gcc.c-torture/execute/builtins/sprintf-chk.c (s1): Make LOCAL.
* gcc.c-torture/execute/builtins/stpcpy-chk.c (s1): Likewise.
* gcc.c-torture/execute/builtins/strcpy-chk.c (s1): Likewise.
2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
PR/19232
* gcc.dg/assign-warn-3.c (f0): Declare as inline.
(f1): Likewise.
2007-01-15 Dale Johannesen <dalej@apple.com>
* gcc.dg/tree-ssa/loop-3.c: Disable with -fpic or -fPIC.
2007-03-21 Richard Sandiford <richard@codesourcery.com>
* lib/target-supports.exp (check_effective_target_nonpic): New
procedure.
From-SVN: r131413
+2008-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/execute/builtins/chk.h: Don't check !__PIE__.
+ Also check __pic__.
+ * lib/target-supports.exp (check_effective_target_nonpic): Likewise.
+ * gcc.dg/assign-warn-3.c: Use "static inline" instead of "inline".
+
+ Backport:
+
+ 2007-03-21 Richard Sandiford <richard@codesourcery.com>
+ * gcc.c-torture/execute/builtins/chk.h (LOCAL): Define.
+ * gcc.c-torture/execute/builtins/sprintf-chk.c (s1): Make LOCAL.
+ * gcc.c-torture/execute/builtins/stpcpy-chk.c (s1): Likewise.
+ * gcc.c-torture/execute/builtins/strcpy-chk.c (s1): Likewise.
+
+ 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
+ PR/19232
+ * gcc.dg/assign-warn-3.c (f0): Declare as inline.
+ (f1): Likewise.
+
+ 2007-01-15 Dale Johannesen <dalej@apple.com>
+ * gcc.dg/tree-ssa/loop-3.c: Disable with -fpic or -fPIC.
+
+ 2007-03-21 Richard Sandiford <richard@codesourcery.com>
+ * lib/target-supports.exp (check_effective_target_nonpic): New
+ procedure.
+
2007-12-20 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/34003
extern volatile int strncpy_disallowed, strcat_disallowed, strncat_disallowed;
extern volatile int sprintf_disallowed, vsprintf_disallowed;
extern volatile int snprintf_disallowed, vsnprintf_disallowed;
+
+/* A storage class that ensures that declarations bind locally. We want
+ to test non-static declarations where we know it is safe to do so. */
+#if __PIC__ || __pic__
+#define LOCAL static
+#else
+#define LOCAL
+#endif
#include "chk.h"
-const char s1[] = "123";
+LOCAL const char s1[] = "123";
char p[32] = "";
char *s2 = "defg";
char *s3 = "FGH";
#include "chk.h"
-const char s1[] = "123";
+LOCAL const char s1[] = "123";
char p[32] = "";
char *s2 = "defg";
char *s3 = "FGH";
#include "chk.h"
-const char s1[] = "123";
+LOCAL const char s1[] = "123";
char p[32] = "";
char *s2 = "defg";
char *s3 = "FGH";
/* { dg-options "-O3 -std=c99 -pedantic-errors" } */
/* This is valid to execute, so maybe shouldn't warn at all. */
-void f0(x) signed char *x; { }
+static inline void f0(x) signed char *x; { }
void g0(unsigned char *x) { f0(x); } /* { dg-warning "warning: pointer targets in passing argument 1 of 'f0' differ in signedness" } */
/* This is undefined on execution but still must compile. */
-void f1(x) int *x; { }
+static inline void f1(x) int *x; { }
void g1(unsigned int *x) { f1(x); } /* { dg-warning "warning: pointer targets in passing argument 1 of 'f1' differ in signedness" } */
assume something about memory addressing modes. */
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O1 -fdump-tree-vars" } */
+/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-fpic" "-fPIC" } { "" } } */
+/* { dg-options "-O1 -fno-pic -fno-PIC -fdump-tree-vars" } */
int arr_base[100];
return 0
}
+# Return 1 if the current multilib does not generate PIC by default.
+
+proc check_effective_target_nonpic { } {
+ return [check_no_compiler_messages nonpic assembly {
+ #if __PIC__ || __pic__
+ #error FOO
+ #endif
+ }]
+}
+
# Return true if iconv is supported on the target. In particular IBM1047.
proc check_iconv_available { test_what } {