20030711-1.c: Modify to work on Darwin.
2005-08-26 Dale Johannesen <dalej@apple.com> * gcc.dg/20030711-1.c: Modify to work on Darwin. * gcc.dg/20050826-1.c: New. From-SVN: r103538
This commit is contained in:
parent
8f34bde689
commit
12d347da5c
|
@ -1,3 +1,8 @@
|
|||
2005-08-26 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* gcc.dg/20030711-1.c: Modify to work on Darwin.
|
||||
* gcc.dg/20050826-1.c: New.
|
||||
|
||||
2005-08-26 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/19004
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
/* Test whether strncmp has not been "optimized" into memcmp
|
||||
nor any code with memcmp semantics. */
|
||||
/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* } } */
|
||||
/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* *-*-darwin* } } */
|
||||
/* { dg-options "-O2" } */
|
||||
#include <sys/mman.h>
|
||||
#ifndef MAP_ANONYMOUS
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
||||
void __attribute__((noinline)) test (const char *p)
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
/* Test whether strncmp has not been "optimized" into memcmp
|
||||
nor any code with memcmp semantics. */
|
||||
/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* i?86-*-darwin* powerpc-*-darwin*} } */
|
||||
/* { dg-options "-O2" } */
|
||||
#include <sys/mman.h>
|
||||
/* Darwin spells this differently */
|
||||
#ifndef MAP_ANONYMOUS
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
||||
struct Flags {
|
||||
int filler[18];
|
||||
unsigned int a:14;
|
||||
unsigned int b:14;
|
||||
unsigned int c:1;
|
||||
unsigned int d:1;
|
||||
unsigned int e:1;
|
||||
unsigned int f:1;
|
||||
};
|
||||
static void __attribute__((noinline)) set (struct Flags *);
|
||||
static void set (struct Flags *fp)
|
||||
{
|
||||
fp->b = 5;
|
||||
fp->d = 1;
|
||||
}
|
||||
|
||||
static int __attribute__((noinline)) bar (int);
|
||||
static int bar(int x) { return !(x==1); }
|
||||
int main (void)
|
||||
{
|
||||
char *p = mmap (NULL, 131072, PROT_READ | PROT_WRITE,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||||
struct Flags *fp;
|
||||
if (p == MAP_FAILED)
|
||||
return 0;
|
||||
if (munmap (p + 65536, 65536) < 0)
|
||||
return 0;
|
||||
fp = (struct Flags*)(p + 65536 - sizeof(struct Flags));
|
||||
set(fp);
|
||||
if (fp->b > 0)
|
||||
return (bar(fp->d));
|
||||
return 1;
|
||||
}
|
Loading…
Reference in New Issue