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)12main (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