Example: intptr4.c

up: index
prev: intptr3a.c
next: intptr7.c

    #include <stdint.h>
    int main() {
        intptr_t a=0,b=0;
        intptr_t c = a + b;
    }

Experimental data (what does this mean?)

cerberus-cheri
cerberus-cheri-no-pnvi
cerberus-cheri-revocation
cerberus-cheri-revocation-no-pnvi
cerberus-cheri-cornucopia
cerberus-cheri-cornucopia-no-pnvi
 
 
clang-morello-O0-bounds-conservative
clang-morello-O3-bounds-conservative
clang-morello-O0-bounds-references-only
clang-morello-O0-bounds-subobject-safe
clang-morello-O3-bounds-subobject-safe
clang-morello-O0-bounds-aggressive
clang-morello-O0-bounds-very-aggressive
clang-morello-O0-bounds-everywhere-unsafe
clang-riscv-O0-bounds-conservative
clang-riscv-O3-bounds-conservative
clang-riscv-O0-bounds-references-only
clang-riscv-O0-bounds-subobject-safe
clang-riscv-O3-bounds-subobject-safe
clang-riscv-O0-bounds-aggressive
clang-riscv-O0-bounds-very-aggressive
clang-riscv-O0-bounds-everywhere-unsafe
 tests/cheri/intptr4.c:4:20: warning: binary expression on capability types 'intptr_t' (aka '__intcap') and 'intptr_t'; it is not clear which should be used as the source of provenance; currently provenance is inherited from the left-hand side [-Wcheri-provenance]
intptr_t c = a + b;
~ ^ ~
1 warning generated.
 
gcc-morello-O0
gcc-morello-O3
 tests/cheri/intptr4.c: In function 'main':
tests/cheri/intptr4.c:4:20: warning: binary expression on capability types 'intptr_t' {aka '__intcap'} and 'intptr_t' {aka '__intcap'}; it is not clear which should be used as the source of provenance; currently provenance is inherited from the left-hand side [-Wcheri-provenance]
4 | intptr_t c = a + b;
| ^