URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 399 |
// PR c++/40502
|
// PR c++/40502
|
// { dg-do compile }
|
// { dg-do compile }
|
// { dg-options "-O2" }
|
// { dg-options "-O2" }
|
|
|
struct A { char x[12], y[35]; };
|
struct A { char x[12], y[35]; }; // change to y[32] to get warning on or32
|
struct B { char z[50]; };
|
struct B { char z[50]; };
|
|
|
inline void
|
inline void
|
foo (char *dest, const char *__restrict src, __SIZE_TYPE__ n)
|
foo (char *dest, const char *__restrict src, __SIZE_TYPE__ n)
|
{
|
{
|
__builtin___strncpy_chk (dest, src, n, __builtin_object_size (dest, 0)); // { dg-warning "will always overflow" }
|
__builtin___strncpy_chk (dest, src, n, __builtin_object_size (dest, 0)); // { dg-warning "will always overflow" "" { target { ! or32-*-* } } }
|
}
|
}
|
|
|
void bar (const char *, int);
|
void bar (const char *, int);
|
|
|
inline void
|
inline void
|
baz (int i)
|
baz (int i)
|
{
|
{
|
char s[128], t[32];
|
char s[128], t[32];
|
bar (s, 0);
|
bar (s, 0);
|
bar (t, i);
|
bar (t, i);
|
A a;
|
A a;
|
B b;
|
B b;
|
foo (a.y, b.z, 36);
|
foo (a.y, b.z, 36);
|
}
|
}
|
|
|
void
|
void
|
test ()
|
test ()
|
{
|
{
|
baz (0);
|
baz (0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.