CTSRD-CHERI / clang

DO NOT USE. Use llvm-project instead
Other
9 stars 8 forks source link

comparison between capability and NULL broken #181

Closed brooksdavis closed 6 years ago

brooksdavis commented 6 years ago

Compiling this:

#define NULL    (void *)0

int
foo(void * __capability cap)
{
        return (cap == NULL);
}

in hybrid mode with:

clang -target cheri-unknown-freebsd -march=mips4 -mabi=64 -mcpu=mips4 -cheri=128 -c -o /dev/null compare2null.c

produces:

compare2null.c:6:14: error: comparison between integer pointer and capability
      ('void * __capability' and 'void *')
        return (cap == NULL);
                ~~~ ^  ~~~~