Back to index

glibc  2.9
Defines
tst-stack-align.h File Reference
#include <stdio.h>
#include <stdint.h>

Go to the source code of this file.

Defines

#define TEST_STACK_ALIGN()

Define Documentation

#define TEST_STACK_ALIGN ( )
Value:
({                                                                  \
    /* Altivec __vector int etc. needs 16byte aligned stack.               \
       Instead of using altivec.h here, use aligned attribute instead.  */   \
    struct _S                                                       \
      {                                                                    \
        int _i __attribute__((aligned (16)));                              \
       int _j[3];                                                   \
      } _s = { ._i = 18, ._j[0] = 19, ._j[1] = 20, ._j[2] = 21 };          \
    double _d = 12.0;                                                      \
    long double _ld = 15.0;                                         \
    int _ret = 0;                                                   \
    printf ("__vector int:  { %d, %d, %d, %d } %p %zu\n", _s._i, _s._j[0],   \
            _s._j[1], _s._j[2], &_s, __alignof (_s));                      \
    if ((((uintptr_t) &_s) & (__alignof (_s) - 1)) != 0)                   \
      _ret = 1;                                                            \
									     \
    printf ("double:  %g %p %zu\n", _d, &_d, __alignof (double));          \
    if ((((uintptr_t) &_d) & (__alignof (double) - 1)) != 0)               \
      _ret = 1;                                                            \
									     \
    printf ("ldouble: %Lg %p %zu\n", _ld, &_ld, __alignof (long double));    \
    if ((((uintptr_t) &_ld) & (__alignof (long double) - 1)) != 0)         \
      _ret = 1;                                                            \
    _ret;                                                           \
    })

Definition at line 22 of file tst-stack-align.h.