Example: prov0.c

up: index
prev: stack1.c
next: prov1.c

    #include <stdint.h>
    #include <inttypes.h>
    #include <stdio.h>
    
    int main()
    {
        int x0=0;
        int x1=0;
        
        uintptr_t ip0 = (uintptr_t)&x0;
        uintptr_t ip1 = (uintptr_t)&x1;
    
        fprintf(stderr,"ip0 < ip1 is %s\n",ip0<ip1?"true":"false");
    }

Experimental data (what does this mean?)

gcc-morello-O3 ip0 < ip1 is true
 
gcc-morello-O0
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
cerberus-cheri
cerberus-cheri-no-pnvi
cerberus-cheri-revocation
cerberus-cheri-revocation-no-pnvi
cerberus-cheri-cornucopia
cerberus-cheri-cornucopia-no-pnvi
 ip0 < ip1 is false