Example: bounds4.c

up: index
prev: bounds3.c
next: bounds5.c

    #include <stdio.h>
    #include "capprint.h"
    
    int main()
    {
        int x[2]={42,43};
        
        fprintf(stderr,"&x: %" PTR_FMT "\n", sptr((void*)(&x)));
        fprintf(stderr,"&x[0]: %" PTR_FMT "\n",sptr((void*)(&x[0])));
    }
    
    

Experimental data (what does this mean?)

cerberus-cheri-no-pnvi
cerberus-cheri-revocation-no-pnvi
cerberus-cheri-cornucopia-no-pnvi
 &x: (@disabled, 0xffffe71c [rwRW,0xffffe71c-0xffffe724])
&x[0]: (@disabled, 0xffffe71c [rwRW,0xffffe71c-0xffffe724])
 
cerberus-cheri
cerberus-cheri-revocation
cerberus-cheri-cornucopia
 &x: (@81, 0xffffe71c [rwRW,0xffffe71c-0xffffe724])
&x[0]: (@81, 0xffffe71c [rwRW,0xffffe71c-0xffffe724])
 
clang-riscv-O0-bounds-very-aggressive
clang-riscv-O0-bounds-everywhere-unsafe
 &x: 0x3fffdfff68 [rwRW,0x3fffdfff68-0x3fffdfff70]
&x[0]: 0x3fffdfff68 [rwRW,0x3fffdfff68-0x3fffdfff6c]
 
clang-riscv-O3-bounds-subobject-safe &x: 0x3fffdfff28 [rwRW,0x3fffdfff28-0x3fffdfff30]
&x[0]: 0x3fffdfff28 [rwRW,0x3fffdfff28-0x3fffdfff30]
 
clang-riscv-O3-bounds-conservative &x: 0x3fffdfff38 [rwRW,0x3fffdfff38-0x3fffdfff40]
&x[0]: 0x3fffdfff38 [rwRW,0x3fffdfff38-0x3fffdfff40]
 
clang-riscv-O0-bounds-conservative
clang-riscv-O0-bounds-references-only
clang-riscv-O0-bounds-subobject-safe
clang-riscv-O0-bounds-aggressive
 &x: 0x3fffdfff68 [rwRW,0x3fffdfff68-0x3fffdfff70]
&x[0]: 0x3fffdfff68 [rwRW,0x3fffdfff68-0x3fffdfff70]
 
clang-morello-O0-bounds-very-aggressive
clang-morello-O0-bounds-everywhere-unsafe
 &x: 0xfffffff7ff58 [rwRW,0xfffffff7ff58-0xfffffff7ff60]
&x[0]: 0xfffffff7ff58 [rwRW,0xfffffff7ff58-0xfffffff7ff5c]
 
clang-morello-O3-bounds-subobject-safe &x: 0xfffffff7fef8 [rwRW,0xfffffff7fef8-0xfffffff7ff00]
&x[0]: 0xfffffff7fef8 [rwRW,0xfffffff7fef8-0xfffffff7ff00]
 
clang-morello-O3-bounds-conservative &x: 0xfffffff7ff28 [rwRW,0xfffffff7ff28-0xfffffff7ff30]
&x[0]: 0xfffffff7ff28 [rwRW,0xfffffff7ff28-0xfffffff7ff30]
 
clang-morello-O0-bounds-conservative
clang-morello-O0-bounds-references-only
clang-morello-O0-bounds-subobject-safe
clang-morello-O0-bounds-aggressive
 &x: 0xfffffff7ff58 [rwRW,0xfffffff7ff58-0xfffffff7ff60]
&x[0]: 0xfffffff7ff58 [rwRW,0xfffffff7ff58-0xfffffff7ff60]
 
gcc-morello-O0
gcc-morello-O3
 &x: 0x7fffffd8 [rwRW,0x7fffffd8-0x7fffffe0]
&x[0]: 0x7fffffd8 [rwRW,0x7fffffd8-0x7fffffe0]