• Sergei Golubchik's avatar
    RocksDB: workaround a compiler error on ppc64le · 76098f45
    Sergei Golubchik authored
    storage/rocksdb/rdb_datadic.cc: In member function 'int myrocks::Rdb_key_def::unpack_integer(myrocks::Rdb_field_packing*, Field*, uchar*, myrocks::Rdb_string_reader*, myrocks::Rdb_string_reader*) const'
    storage/rocksdb/rdb_datadic.cc:1781:1: internal compiler error: Segmentation fault
     }
    
    on ppc64le, ubuntu bionic gcc 7.3.0 and debian stretch gcc 6.3.0
    
    The error happens with -ftree-loop-vectorize when trying to vectorize
    a particular loop (see Rdb_key_def::unpack_integer())
    
    Compiler gets confused by __attribute__((optimize("O0")) that comes from
    ha_rocksdb_proto.h. The intention of this __attribute__ was to prevent
    function from being inlined (see ha_rocksdb.cc). Let's use a more
    specific attribute that prevents inlining but does not confuse
    loop vectorizer.
    76098f45
ha_rocksdb_proto.h 3.07 KB