root/usr/src/tools/smatch/src/validation/c11-alignas.c
static _Alignas(8)      int v;
static _Alignas(long)   int t;
static _Alignas(void *) int p;
static _Alignas(int[4]) int a;
static _Alignas(0)      int z;
static _Alignas(3)      int bnpow2;
static _Alignas(-1)     int bneg;
static _Alignas(-2)     int bnegpow2;
static _Alignas(v)      int bnc;
static _Alignas(+)      int bsyn;

static int check(void)
{
        if (_Alignof(v) != 8)
                return -1;
        if (_Alignof(t) != _Alignof(long))
                return -1;
        if (_Alignof(p) != _Alignof(void *))
                return -1;
        if (_Alignof(a) != _Alignof(int))
                return -1;

        return 0;
}

/*
 * check-name: c11-alignas
 * check-command: test-linearize -std=c11 $file
 *
 * check-error-start
c11-alignas.c:6:25: warning: non-power-of-2 alignment
c11-alignas.c:7:25: warning: non-positive alignment
c11-alignas.c:8:25: warning: non-positive alignment
c11-alignas.c:9:17: error: bad constant expression
c11-alignas.c:10:17: error: Syntax error in unary expression
 * check-error-end
 *
 * check-output-ignore
 * check-output-contains: ret\\.32 *\\$0
 */