CCEH$ make ALL_CCEH
g++ -std=c++17 -I./ -lrt -lpthread -O3 -c -o src/CCEH_MSB.o src/CCEH_MSB.cpp -DINPLACE
In file included from src/CCEH_MSB.cpp:9:0:
./src/CCEH.h: In static member function 'static void* Segment::operator new(size_t)':
./src/CCEH.h:33:19: warning: ignoring return value of 'int posix_memalign(void**, size_t, size_t)', declared with attribute warn_unused_result [-Wunused-result]
posix_memalign(&ret, 64, size);
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
g++ -std=c++17 -I./ -lrt -lpthread -O3 -c -o src/CCEH_MSB_CoW.o src/CCEH_MSB.cpp
In file included from src/CCEH_MSB.cpp:9:0:
./src/CCEH.h: In static member function 'static void* Segment::operator new(size_t)':
./src/CCEH.h:33:19: warning: ignoring return value of 'int posix_memalign(void**, size_t, size_t)', declared with attribute warn_unused_result [-Wunused-result]
posix_memalign(&ret, 64, size);
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
g++ -std=c++17 -I./ -lrt -lpthread -O3 -c -o src/CCEH_LSB.o src/CCEH_LSB.cpp -DINPLACE
src/CCEH_LSB.cpp: In constructor 'CCEH::CCEH()':
src/CCEH_LSB.cpp:131:25: error: invalid conversion from 'int' to 'Directory*' [-fpermissive]
: dir{1}, global_depth{0}
^
src/CCEH_LSB.cpp:133:32: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
for (unsigned i = 0; i < dir.capacity; ++i) {
^~~~~~~~
src/CCEH_LSB.cpp:134:9: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir._[i] = new Segment(global_depth);
^
src/CCEH_LSB.cpp:135:9: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir._[i]->pattern = i;
^
src/CCEH_LSB.cpp: In constructor 'CCEH::CCEH(size_t)':
src/CCEH_LSB.cpp:140:64: error: invalid conversion from 'size_t {aka long unsigned int}' to 'Directory*' [-fpermissive]
: dir{initCap}, global_depth{static_cast<size_t>(log2(initCap))}
^
src/CCEH_LSB.cpp:142:32: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
for (unsigned i = 0; i < dir.capacity; ++i) {
^~~~~~~~
src/CCEH_LSB.cpp:143:9: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir._[i] = new Segment(global_depth);
^
src/CCEH_LSB.cpp:144:9: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir._[i]->pattern = i;
^
src/CCEH_LSB.cpp: In member function 'virtual void CCEH::Insert(Key_t&, Value_t)':
src/CCEH_LSB.cpp:183:28: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto x = (key_hash % dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:184:21: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto target = dir._[x];
^
src/CCEH_LSB.cpp:201:17: error: request for member 'Acquire' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
while (!dir.Acquire()) {
^~~~~~~
src/CCEH_LSB.cpp:205:27: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
x = (key_hash % dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:207:15: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
if (dir._[x]->local_depth-1 < global_depth) { // normal split
^
src/CCEH_LSB.cpp:211:13: error: request for member 'LSBUpdate' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir.LSBUpdate(s[0]->local_depth, global_depth, dir.capacity, x, s);
^~~~~~~~~
src/CCEH_LSB.cpp:211:60: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir.LSBUpdate(s[0]->local_depth, global_depth, dir.capacity, x, s);
^~~~~~~~
src/CCEH_LSB.cpp:213:22: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto d = dir._;
^
src/CCEH_LSB.cpp:214:38: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto _dir = new Segment*[dir.capacity*2];
^~~~~~~~
src/CCEH_LSB.cpp:215:46: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
memcpy(_dir, d, sizeof(Segment*)*dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:216:25: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
memcpy(_dir+dir.capacity, d, sizeof(Segment*)*dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:216:59: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
memcpy(_dir+dir.capacity, d, sizeof(Segment*)*dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:218:20: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
_dir[x+dir.capacity] = s[1];
^~~~~~~~
src/CCEH_LSB.cpp:219:29: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
clflush((char*)&dir._[0], sizeof(Segment*)*dir.capacity);
^
src/CCEH_LSB.cpp:219:56: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
clflush((char*)&dir._[0], sizeof(Segment*)*dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:220:13: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir._ = _dir;
^
src/CCEH_LSB.cpp:221:29: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
clflush((char*)&dir._, sizeof(void*));
^
src/CCEH_LSB.cpp:222:13: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
dir.capacity *= 2;
^~~~~~~~
src/CCEH_LSB.cpp:223:29: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
clflush((char*)&dir.capacity, sizeof(size_t));
^~~~~~~~
src/CCEH_LSB.cpp:226:16: error: type '<type error>' argument given to 'delete', expected pointer
delete d;
^
src/CCEH_LSB.cpp:233:17: error: request for member 'Release' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
while (!dir.Release()) {
^~~~~~~
src/CCEH_LSB.cpp:241:25: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
clflush((char*)&dir._[x]->_[y], 64);
^
src/CCEH_LSB.cpp: In member function 'virtual bool CCEH::InsertOnly(Key_t&, Value_t)':
src/CCEH_LSB.cpp:248:28: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto x = (key_hash % dir.capacity);
^~~~~~~~
src/CCEH_LSB.cpp:251:18: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto ret = dir._[x]->Insert(key, value, y, key_hash);
^
src/CCEH_LSB.cpp:253:25: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
clflush((char*)&dir._[x]->_[y], 64);
^
src/CCEH_LSB.cpp: In member function 'virtual const char* CCEH::Get(Key_t&)':
src/CCEH_LSB.cpp:267:27: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
const size_t mask = dir.capacity-1;
^~~~~~~~
src/CCEH_LSB.cpp:271:19: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto dir_ = dir._[x];
^
src/CCEH_LSB.cpp:274:19: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
auto sema = dir._[x]->sema;
^
In file included from ./src/CCEH.h:8:0,
from src/CCEH_LSB.cpp:9:
src/CCEH_LSB.cpp:275:20: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
while (!CAS(&dir._[x]->sema, &sema, sema+1)) {
^
./src/hash.h:4:56: note: in definition of macro 'CAS'
#define CAS(_p, _u, _v) (__atomic_compare_exchange_n (_p, _u, _v, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE))
^~
src/CCEH_LSB.cpp:276:16: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
sema = dir._[x]->sema;
^
src/CCEH_LSB.cpp:284:18: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
sema = dir._[x]->sema;
^
In file included from ./src/CCEH.h:8:0,
from src/CCEH_LSB.cpp:9:
src/CCEH_LSB.cpp:285:24: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
while (!CAS(&dir._[x]->sema, &sema, sema-1)) {
^
./src/hash.h:4:56: note: in definition of macro 'CAS'
#define CAS(_p, _u, _v) (__atomic_compare_exchange_n (_p, _u, _v, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE))
^~
src/CCEH_LSB.cpp:286:20: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
sema = dir._[x]->sema;
^
src/CCEH_LSB.cpp:294:14: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
sema = dir._[x]->sema;
^
In file included from ./src/CCEH.h:8:0,
from src/CCEH_LSB.cpp:9:
src/CCEH_LSB.cpp:295:20: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
while (!CAS(&dir._[x]->sema, &sema, sema-1)) {
^
./src/hash.h:4:56: note: in definition of macro 'CAS'
#define CAS(_p, _u, _v) (__atomic_compare_exchange_n (_p, _u, _v, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE))
^~
src/CCEH_LSB.cpp:296:16: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
sema = dir._[x]->sema;
^
src/CCEH_LSB.cpp: In member function 'virtual double CCEH::Utilization()':
src/CCEH_LSB.cpp:305:30: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
for (size_t i = 0; i < dir.capacity; ++i) {
^~~~~~~~
src/CCEH_LSB.cpp:306:13: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
set[dir._[i]] = true;
^
src/CCEH_LSB.cpp: In member function 'virtual size_t CCEH::Capacity()':
src/CCEH_LSB.cpp:318:30: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
for (size_t i = 0; i < dir.capacity; ++i) {
^~~~~~~~
src/CCEH_LSB.cpp:319:13: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
set[dir._[i]] = true;
^
src/CCEH_LSB.cpp: In member function 'const char* CCEH::FindAnyway(Key_t&)':
src/CCEH_LSB.cpp:341:30: error: request for member 'capacity' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
for (size_t i = 0; i < dir.capacity; ++i) {
^~~~~~~~
src/CCEH_LSB.cpp:343:16: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
if (dir._[i]->_[j].key == key) {
^
src/CCEH_LSB.cpp:348:21: error: request for member '_' in '((CCEH*)this)->CCEH::dir', which is of pointer type 'Directory*' (maybe you meant to use '->' ?)
return dir._[i]->_[j].value;
^
In file included from src/CCEH_LSB.cpp:9:0:
./src/CCEH.h: In static member function 'static void* Segment::operator new(size_t)':
./src/CCEH.h:33:19: warning: ignoring return value of 'int posix_memalign(void**, size_t, size_t)', declared with attribute warn_unused_result [-Wunused-result]
posix_memalign(&ret, 64, size);
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
Makefile:13: recipe for target 'CCEH_LSB' failed
make: *** [CCEH_LSB] Error 1
OS: Ubuntu 18.04.3 LTS, with linux-5.1.0+ kernel
g++ version: g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0