1 /* { dg-do run } */
2 /* { dg-require-weak "" } */
3 /* { dg-skip-if "No undefined weak" { hppa*-*-hpux* && { ! lp64 } } } */
4 /* { dg-skip-if "No undefined weak" { nvptx-*-* } } */
5 /* { dg-additional-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } } */
6 /* { dg-additional-options "-Wl,-flat_namespace" { target *-*-darwin[89]* } } */
7 
8 typedef __SIZE_TYPE__ size_t;
9 extern int posix_memalign(void **memptr, size_t alignment, size_t size) __attribute__((weak));
10 extern void abort(void);
11 int
main(void)12 main (void)
13 {
14   void *p;
15   int ret;
16 
17   if (!posix_memalign)
18     return 0;
19 
20   p = (void *)&ret;
21   ret = posix_memalign (&p, sizeof (void *), -1);
22   if (p != (void *)&ret)
23     abort ();
24   return 0;
25 }
26