From 8acf2a4d3e329eee06228e355913ab2f28f68263 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 08:49:21 +0200 Subject: [PATCH 01/41] refactor: improve code readability and consistency in shared memory classes --- .gitignore | 3 +- include/libsharedmemory/libsharedmemory.hpp | 183 +++++++++++--------- 2 files changed, 104 insertions(+), 82 deletions(-) diff --git a/.gitignore b/.gitignore index 559e449..ebb4a75 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .cache .vscode -build \ No newline at end of file +build +.idea \ No newline at end of file diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 99add7b..6761105 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,17 +1,12 @@ - -#ifndef INCLUDE_LIBSHAREDMEMORY_HPP_ -#define INCLUDE_LIBSHAREDMEMORY_HPP_ +#pragma once #include #define LIBSHAREDMEMORY_VERSION_MAJOR 0 #define LIBSHAREDMEMORY_VERSION_MINOR 0 #define LIBSHAREDMEMORY_VERSION_PATCH 9 -#include #include #include -#include -#include #include // nullptr_t, ptrdiff_t, std::size_t #if defined(_WIN32) @@ -37,31 +32,31 @@ enum DataType { }; // byte sizes of memory layout -const size_t bufferSizeSize = 4; // size_t takes 4 bytes -const size_t sizeOfOneFloat = 4; // float takes 4 bytes -const size_t sizeOfOneChar = 1; // char takes 1 byte -const size_t sizeOfOneDouble = 8; // double takes 8 bytes -const size_t flagSize = 1; // char takes 1 byte +constexpr size_t bufferSizeSize = 4; // size_t takes 4 bytes +constexpr size_t sizeOfOneFloat = 4; // float takes 4 bytes +constexpr size_t sizeOfOneChar = 1; // char takes 1 byte +constexpr size_t sizeOfOneDouble = 8; // double takes 8 bytes +constexpr size_t flagSize = 1; // char takes 1 byte class Memory { public: // path should only contain alpha-numeric characters, and is normalized // on linux/macOS. - explicit Memory(std::string path, std::size_t size, bool persist); + explicit Memory(const std::string& path, std::size_t size, bool persist); // create a shared memory area and open it for writing - inline Error create() { return createOrOpen(true); }; + Error create() { return createOrOpen(true); }; // open an existing shared memory for reading - inline Error open() { return createOrOpen(false); }; + Error open() { return createOrOpen(false); }; - inline std::size_t size() { return _size; }; + std::size_t size() const { return _size; }; - inline const std::string &path() { return _path; } + const std::string &path() { return _path; } - inline void *data() { return _data; } + void *data() const { return _data; } - void destroy(); + void destroy() const; void close(); @@ -91,7 +86,7 @@ Memory::Memory(const std::string path, const std::size_t size, const bool persis Error Memory::createOrOpen(const bool create) { if (create) { DWORD size_high_order = 0; - DWORD size_low_order = static_cast(size_); + DWORD size_low_order = static_cast(_size); _handle = CreateFileMappingA(INVALID_HANDLE_VALUE, // use paging file NULL, // default security @@ -104,7 +99,7 @@ Error Memory::createOrOpen(const bool create) { return kErrorCreationFailed; } } else { - _handle = OpenFileMappingA(FILE_MAP_READ, // read access + _handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, // read/write access FALSE, // do not inherit the name _path.c_str() // name of mapping object ); @@ -121,7 +116,7 @@ Error Memory::createOrOpen(const bool create) { // the memory section changes // https://docs.microsoft.com/de-de/windows/win32/api/memoryapi/nf-memoryapi-getwritewatch?redirectedfrom=MSDN - const DWORD access = create ? FILE_MAP_ALL_ACCESS : FILE_MAP_READ; + const DWORD access = FILE_MAP_ALL_ACCESS; // always request read/write view _data = MapViewOfFile(_handle, access, 0, 0, _size); if (!_data) { @@ -161,18 +156,23 @@ Memory::~Memory() { #include // for O_* constants #include // mmap, munmap -#include // for mode constants -#include // unlink +#include // unlink, close + +// Helper function to call POSIX close() without name collision +namespace lsm_internal +{ + inline int posix_close(const int fd) + { + return close(fd); + } +} #if defined(__APPLE__) -#include - #endif // __APPLE__ -#include - -inline Memory::Memory(const std::string path, const std::size_t size, const bool persist) : _size(size), _persist(persist) { +inline Memory::Memory(const std::string& path, const std::size_t size, const bool persist) : _size(size), _persist(persist) +{ _path = "/" + path; }; @@ -189,27 +189,33 @@ inline Error Memory::createOrOpen(const bool create) { } } - const int flags = create ? (O_CREAT | O_RDWR) : O_RDONLY; + const int flags = create ? (O_CREAT | O_RDWR) : O_RDWR; _fd = shm_open(_path.c_str(), flags, 0755); - if (_fd < 0) { - if (create) { + if (_fd < 0) + { + if (create) + { return kErrorCreationFailed; - } else { + } + else + { return kErrorOpeningFailed; } } - if (create) { + if (create) + { // this is the only way to specify the size of a // newly-created POSIX shared memory object - int ret = ftruncate(_fd, _size); - if (ret != 0) { + const int ret = ftruncate(_fd, _size); + if (ret != 0) + { return kErrorCreationFailed; } } - const int prot = create ? (PROT_READ | PROT_WRITE) : PROT_READ; + constexpr int prot = PROT_READ | PROT_WRITE; _data = mmap(nullptr, // addr _size, // length @@ -219,7 +225,8 @@ inline Error Memory::createOrOpen(const bool create) { 0 // offset ); - if (_data == MAP_FAILED) { + if (_data == MAP_FAILED) + { return kErrorMappingFailed; } @@ -229,11 +236,16 @@ inline Error Memory::createOrOpen(const bool create) { return kOK; } -inline void Memory::destroy() { shm_unlink(_path.c_str()); } +inline void Memory::destroy() const { shm_unlink(_path.c_str()); } inline void Memory::close() { munmap(_data, _size); - ::close(_fd); + if (_fd >= 0) { + int fd_to_close = _fd; + _fd = -1; + // Use helper function to avoid name collision + lsm_internal::posix_close(fd_to_close); + } } inline Memory::~Memory() { @@ -248,7 +260,7 @@ inline Memory::~Memory() { class SharedMemoryReadStream { public: - SharedMemoryReadStream(const std::string name, const std::size_t bufferSize, const bool isPersistent): + SharedMemoryReadStream(const std::string& name, const std::size_t bufferSize, const bool isPersistent): _memory(name, bufferSize, isPersistent) { if (_memory.open() != kOK) { @@ -256,15 +268,17 @@ class SharedMemoryReadStream { } } - inline char readFlags() { - char* memory = (char*) _memory.data(); + char readFlags() const + { + const auto memory = static_cast(_memory.data()); return memory[0]; } - inline void close() { _memory.close(); } + void close() { _memory.close(); } - inline size_t readSize(char dataType) { + size_t readSize(const char dataType) const + { void *memory = _memory.data(); std::size_t size = 0; @@ -274,28 +288,29 @@ class SharedMemoryReadStream { // with various compilers; otherwise use memcpy() for the size // and align the memory with one cast. - if (dataType & kMemoryTypeDouble) { - size_t *intMemory = (size_t *)memory; + if (dataType & kMemoryTypeDouble) + { + const auto *intMemory = static_cast(memory); // copy size data to size variable std::memcpy(&size, &intMemory[flagSize], bufferSizeSize); } if (dataType & kMemoryTypeFloat) { - int* intMemory = (int*) memory; + const auto intMemory = static_cast(memory); // copy size data to size variable std::memcpy(&size, &intMemory[flagSize], bufferSizeSize); } if (dataType & kMemoryTypeString) { - char* charMemory = (char*) memory; + const auto charMemory = static_cast(memory); // copy size data to size variable std::memcpy(&size, &charMemory[flagSize], bufferSizeSize); } return size; } - inline size_t readLength(char dataType) { - size_t size = readSize(dataType); + size_t readLength(const char dataType) { + const size_t size = readSize(dataType); if (dataType & kMemoryTypeString) { return size / sizeOfOneChar; @@ -318,13 +333,13 @@ class SharedMemoryReadStream { * @return float* */ // TODO: might wanna use templated functions here like: readNumericArray() - inline double* readDoubleArray() { + double* readDoubleArray() { void *memory = _memory.data(); - std::size_t size = readSize(kMemoryTypeDouble); - double* typedMemory = (double*) memory; + const std::size_t size = readSize(kMemoryTypeDouble); + const auto typedMemory = static_cast(memory); // allocating memory on heap (this might leak) - double *data = new double[size / sizeOfOneDouble](); + const auto data = new double[size / sizeOfOneDouble](); // copy to data buffer std::memcpy(data, &typedMemory[flagSize + bufferSizeSize], size); @@ -338,14 +353,14 @@ class SharedMemoryReadStream { * * @return float* */ - inline float* readFloatArray() { + float* readFloatArray() { void *memory = _memory.data(); - float *typedMemory = (float *)memory; - - std::size_t size = readSize(kMemoryTypeFloat); + const auto typedMemory = static_cast(memory); + + const std::size_t size = readSize(kMemoryTypeFloat); // allocating memory on heap (this might leak) - float *data = new float[size / sizeOfOneFloat](); + const auto data = new float[size / sizeOfOneFloat](); // copy to data buffer std::memcpy(data, &typedMemory[flagSize + bufferSizeSize], size); @@ -353,13 +368,13 @@ class SharedMemoryReadStream { return data; } - inline std::string readString() { - char* memory = (char*) _memory.data(); + std::string readString() { + const auto memory = static_cast(_memory.data()); - std::size_t size = readSize(kMemoryTypeString); + const std::size_t size = readSize(kMemoryTypeString); // create a string that copies the data from memory - std::string data = + auto data = std::string(&memory[flagSize + bufferSizeSize], size); return data; @@ -372,7 +387,7 @@ class SharedMemoryReadStream { class SharedMemoryWriteStream { public: - SharedMemoryWriteStream(const std::string name, const std::size_t bufferSize, const bool isPersistent): + SharedMemoryWriteStream(const std::string& name, const std::size_t bufferSize, const bool isPersistent): _memory(name, bufferSize, isPersistent) { if (_memory.create() != kOK) { @@ -380,30 +395,35 @@ class SharedMemoryWriteStream { } } - inline void close() { + void close() { _memory.close(); } // https://stackoverflow.com/questions/18591924/how-to-use-bitmask - inline char getWriteFlags(const char type, - const char currentFlags) { + static char getWriteFlags(const char type, + const char currentFlags) + { char flags = type; - if ((currentFlags & (kMemoryChanged)) == kMemoryChanged) { + if ((currentFlags & (kMemoryChanged)) == kMemoryChanged) + { // disable flag, leave rest untouched flags &= ~kMemoryChanged; - } else { + } + else + { // enable flag, leave rest untouched flags ^= kMemoryChanged; } return flags; } - inline void write(const std::string& string) { - char* memory = (char*) _memory.data(); + void write(const std::string& string) const + { + const auto memory = static_cast(_memory.data()); // 1) copy change flag into buffer for change detection - char flags = getWriteFlags(kMemoryTypeString, ((char*) _memory.data())[0]); + const char flags = getWriteFlags(kMemoryTypeString, static_cast(_memory.data())[0]); std::memcpy(&memory[0], &flags, flagSize); // 2) copy buffer size into buffer (meta data for deserializing) @@ -419,10 +439,11 @@ class SharedMemoryWriteStream { // TODO: might wanna use template function here for numeric arrays, // like void writeNumericArray( data, std::size_t length) - inline void write(float* data, std::size_t length) { - float* memory = (float*) _memory.data(); + void write(const float* data, const std::size_t length) const + { + const auto memory = static_cast(_memory.data()); - char flags = getWriteFlags(kMemoryTypeFloat, ((char*) _memory.data())[0]); + const char flags = getWriteFlags(kMemoryTypeFloat, static_cast(_memory.data())[0]); std::memcpy(&memory[0], &flags, flagSize); // 2) copy buffer size into buffer (meta data for deserializing) @@ -433,10 +454,11 @@ class SharedMemoryWriteStream { std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); } - inline void write(double* data, std::size_t length) { - double* memory = (double*) _memory.data(); + void write(const double* data, const std::size_t length) const + { + const auto memory = static_cast(_memory.data()); - char flags = getWriteFlags(kMemoryTypeDouble, ((char*) _memory.data())[0]); + const char flags = getWriteFlags(kMemoryTypeDouble, static_cast(_memory.data())[0]); std::memcpy(&memory[0], &flags, flagSize); // 2) copy buffer size into buffer (meta data for deserializing) @@ -448,7 +470,8 @@ class SharedMemoryWriteStream { std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); } - inline void destroy() { + void destroy() const + { _memory.destroy(); } @@ -458,5 +481,3 @@ class SharedMemoryWriteStream { }; // namespace lsm - -#endif // INCLUDE_LIBSHAREDMEMORY_HPP_ \ No newline at end of file From 46f1b7d143c37e8832ec93f9e378444afa271aec Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 09:38:45 +0200 Subject: [PATCH 02/41] refactor: enhance code formatting and consistency in shared memory classes --- include/libsharedmemory/libsharedmemory.hpp | 251 ++++++++++++-------- 1 file changed, 153 insertions(+), 98 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 6761105..7bbaa5c 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -15,16 +15,19 @@ #undef WIN32_LEAN_AND_MEAN #endif -namespace lsm { +namespace lsm +{ -enum Error { +enum Error +{ kOK = 0, kErrorCreationFailed = 100, kErrorMappingFailed = 110, kErrorOpeningFailed = 120, }; -enum DataType { +enum DataType +{ kMemoryChanged = 1, kMemoryTypeString = 2, kMemoryTypeFloat = 4, @@ -38,23 +41,39 @@ constexpr size_t sizeOfOneChar = 1; // char takes 1 byte constexpr size_t sizeOfOneDouble = 8; // double takes 8 bytes constexpr size_t flagSize = 1; // char takes 1 byte -class Memory { +class Memory +{ public: // path should only contain alpha-numeric characters, and is normalized // on linux/macOS. explicit Memory(const std::string& path, std::size_t size, bool persist); // create a shared memory area and open it for writing - Error create() { return createOrOpen(true); }; + Error create() + { + return createOrOpen(true); + } // open an existing shared memory for reading - Error open() { return createOrOpen(false); }; + Error open() + { + return createOrOpen(false); + } - std::size_t size() const { return _size; }; + std::size_t size() const + { + return _size; + } - const std::string &path() { return _path; } + const std::string &path() + { + return _path; + } - void *data() const { return _data; } + void *data() const + { + return _data; + } void destroy() const; @@ -81,10 +100,14 @@ class Memory { #include // CreateFileMappingA, OpenFileMappingA, etc. -Memory::Memory(const std::string path, const std::size_t size, const bool persist) : _path(path), _size(size), _persist(persist) {}; +Memory::Memory(const std::string path, const std::size_t size, const bool persist) : _path(path), _size(size), _persist(persist) +{ +} -Error Memory::createOrOpen(const bool create) { - if (create) { +Error Memory::createOrOpen(const bool create) +{ + if (create) + { DWORD size_high_order = 0; DWORD size_low_order = static_cast(_size); @@ -95,19 +118,23 @@ Error Memory::createOrOpen(const bool create) { _path.c_str() // name of mapping object ); - if (!_handle) { + if (!_handle) + { return kErrorCreationFailed; } - } else { - _handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, // read/write access - FALSE, // do not inherit the name - _path.c_str() // name of mapping object - ); + } + else + { + _handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, // read/write access + FALSE, // do not inherit the name + _path.c_str() // name of mapping object + ); - // TODO: Windows has no default support for shared memory persistence - // see: destroy() to implement that + // TODO: Windows has no default support for shared memory persistence + // see: destroy() to implement that - if (!_handle) { + if (!_handle) + { return kErrorOpeningFailed; } } @@ -119,35 +146,40 @@ Error Memory::createOrOpen(const bool create) { const DWORD access = FILE_MAP_ALL_ACCESS; // always request read/write view _data = MapViewOfFile(_handle, access, 0, 0, _size); - if (!_data) { + if (!_data) + { return kErrorMappingFailed; } return kOK; } -void Memory::destroy() { - - // TODO: Windows needs priviledges to define a shared memory (file mapping) - // OBJ_PERMANENT; furthermore, ZwCreateSection would need to be used. - // Instead of doing this; saving a file here (by name, temp dir) - // and reading memory from file in createOrOpen seems more suitable. - // Especially, because files can be removed on reboot using: - // MoveFileEx() with the MOVEFILE_DELAY_UNTIL_REBOOT flag and lpNewFileName - // set to NULL. +void Memory::destroy() +{ + // TODO: Windows needs priviledges to define a shared memory (file mapping) + // OBJ_PERMANENT; furthermore, ZwCreateSection would need to be used. + // Instead of doing this; saving a file here (by name, temp dir) + // and reading memory from file in createOrOpen seems more suitable. + // Especially, because files can be removed on reboot using: + // MoveFileEx() with the MOVEFILE_DELAY_UNTIL_REBOOT flag and lpNewFileName + // set to NULL. } -void Memory::close() { - if (_data) { +void Memory::close() +{ + if (_data) + { UnmapViewOfFile(_data); _data = nullptr; } CloseHandle(_handle); } -Memory::~Memory() { +Memory::~Memory() +{ close(); - if (!_persist) { - destroy(); + if (!_persist) + { + destroy(); } } #endif // defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) @@ -174,16 +206,20 @@ namespace lsm_internal inline Memory::Memory(const std::string& path, const std::size_t size, const bool persist) : _size(size), _persist(persist) { _path = "/" + path; -}; +} -inline Error Memory::createOrOpen(const bool create) { - if (create) { +inline Error Memory::createOrOpen(const bool create) +{ + if (create) + { // shm segments persist across runs, and macOS will refuse // to ftruncate an existing shm segment, so to be on the safe // side, we unlink it beforehand. const int ret = shm_unlink(_path.c_str()); - if (ret < 0) { - if (errno != ENOENT) { + if (ret < 0) + { + if (errno != ENOENT) + { return kErrorCreationFailed; } } @@ -230,52 +266,63 @@ inline Error Memory::createOrOpen(const bool create) { return kErrorMappingFailed; } - if (!_data) { + if (!_data) + { return kErrorMappingFailed; } return kOK; } -inline void Memory::destroy() const { shm_unlink(_path.c_str()); } +inline void Memory::destroy() const +{ + shm_unlink(_path.c_str()); +} -inline void Memory::close() { - munmap(_data, _size); - if (_fd >= 0) { - int fd_to_close = _fd; - _fd = -1; - // Use helper function to avoid name collision - lsm_internal::posix_close(fd_to_close); - } +inline void Memory::close() +{ + munmap(_data, _size); + if (_fd >= 0) + { + const int fd_to_close = _fd; + _fd = -1; + // Use helper function to avoid name collision + lsm_internal::posix_close(fd_to_close); + } } -inline Memory::~Memory() { +inline Memory::~Memory() +{ close(); - if (!_persist) { + if (!_persist) + { destroy(); } } #endif // defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) -class SharedMemoryReadStream { +class SharedMemoryReadStream +{ public: - SharedMemoryReadStream(const std::string& name, const std::size_t bufferSize, const bool isPersistent): - _memory(name, bufferSize, isPersistent) { - - if (_memory.open() != kOK) { + _memory(name, bufferSize, isPersistent) + { + if (_memory.open() != kOK) + { throw "Shared memory segment could not be opened."; } } char readFlags() const { - const auto memory = static_cast(_memory.data()); - return memory[0]; + const auto memory = static_cast(_memory.data()); + return memory[0]; } - void close() { _memory.close(); } - + void close() + { + _memory.close(); + } size_t readSize(const char dataType) const { @@ -295,13 +342,15 @@ class SharedMemoryReadStream { std::memcpy(&size, &intMemory[flagSize], bufferSizeSize); } - if (dataType & kMemoryTypeFloat) { + if (dataType & kMemoryTypeFloat) + { const auto intMemory = static_cast(memory); // copy size data to size variable std::memcpy(&size, &intMemory[flagSize], bufferSizeSize); } - if (dataType & kMemoryTypeString) { + if (dataType & kMemoryTypeString) + { const auto charMemory = static_cast(memory); // copy size data to size variable std::memcpy(&size, &charMemory[flagSize], bufferSizeSize); @@ -309,21 +358,25 @@ class SharedMemoryReadStream { return size; } - size_t readLength(const char dataType) { - const size_t size = readSize(dataType); + size_t readLength(const char dataType) const + { + const size_t size = readSize(dataType); - if (dataType & kMemoryTypeString) { - return size / sizeOfOneChar; - } - - if (dataType & kMemoryTypeFloat) { - return size / sizeOfOneFloat; - } - - if (dataType & kMemoryTypeDouble) { - return size / sizeOfOneDouble; - } - return 0; + if (dataType & kMemoryTypeString) + { + return size / sizeOfOneChar; + } + + if (dataType & kMemoryTypeFloat) + { + return size / sizeOfOneFloat; + } + + if (dataType & kMemoryTypeDouble) + { + return size / sizeOfOneDouble; + } + return 0; } /** @@ -333,7 +386,8 @@ class SharedMemoryReadStream { * @return float* */ // TODO: might wanna use templated functions here like: readNumericArray() - double* readDoubleArray() { + double* readDoubleArray() const + { void *memory = _memory.data(); const std::size_t size = readSize(kMemoryTypeDouble); const auto typedMemory = static_cast(memory); @@ -343,7 +397,7 @@ class SharedMemoryReadStream { // copy to data buffer std::memcpy(data, &typedMemory[flagSize + bufferSizeSize], size); - + return data; } @@ -353,7 +407,8 @@ class SharedMemoryReadStream { * * @return float* */ - float* readFloatArray() { + float* readFloatArray() const + { void *memory = _memory.data(); const auto typedMemory = static_cast(memory); @@ -364,19 +419,19 @@ class SharedMemoryReadStream { // copy to data buffer std::memcpy(data, &typedMemory[flagSize + bufferSizeSize], size); - + return data; } - std::string readString() { + std::string readString() const + { const auto memory = static_cast(_memory.data()); const std::size_t size = readSize(kMemoryTypeString); // create a string that copies the data from memory - auto data = - std::string(&memory[flagSize + bufferSizeSize], size); - + auto data = std::string(&memory[flagSize + bufferSizeSize], size); + return data; } @@ -384,24 +439,25 @@ class SharedMemoryReadStream { Memory _memory; }; -class SharedMemoryWriteStream { +class SharedMemoryWriteStream +{ public: - SharedMemoryWriteStream(const std::string& name, const std::size_t bufferSize, const bool isPersistent): - _memory(name, bufferSize, isPersistent) { - - if (_memory.create() != kOK) { + _memory(name, bufferSize, isPersistent) + { + if (_memory.create() != kOK) + { throw "Shared memory segment could not be created."; } } - void close() { - _memory.close(); + void close() + { + _memory.close(); } // https://stackoverflow.com/questions/18591924/how-to-use-bitmask - static char getWriteFlags(const char type, - const char currentFlags) + static char getWriteFlags(const char type, const char currentFlags) { char flags = type; @@ -449,7 +505,7 @@ class SharedMemoryWriteStream { // 2) copy buffer size into buffer (meta data for deserializing) const std::size_t bufferSize = length * sizeOfOneFloat; std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); - + // 3) copy float* into memory buffer std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); } @@ -465,7 +521,7 @@ class SharedMemoryWriteStream { const std::size_t bufferSize = length * sizeOfOneDouble; std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); - + // 3) copy double* into memory buffer std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); } @@ -479,5 +535,4 @@ class SharedMemoryWriteStream { Memory _memory; }; - }; // namespace lsm From 07f43710d9154bb515b36f6feb5434bdfa0c8418 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 09:47:01 +0200 Subject: [PATCH 03/41] refactor: improve code formatting and consistency in test cases --- test/test.cc | 247 ++++++++++++++++++++++++++------------------------- 1 file changed, 126 insertions(+), 121 deletions(-) diff --git a/test/test.cc b/test/test.cc index b5d33dd..92e48cd 100644 --- a/test/test.cc +++ b/test/test.cc @@ -8,13 +8,15 @@ using namespace std; using namespace lsm; -const lest::test specification[] = { - CASE("shared memory can be created and opened and transfer uint8_t") { +const lest::test specification[] = +{ + CASE("shared memory can be created and opened and transfer uint8_t") + { Memory memoryWriter {"lsmtest", 64, true}; EXPECT(kOK == memoryWriter.create()); - ((uint8_t*)memoryWriter.data())[0] = 0x11; - ((uint8_t*)memoryWriter.data())[1] = 0x34; + static_cast(memoryWriter.data())[0] = 0x11; + static_cast(memoryWriter.data())[1] = 0x34; Memory memoryReader{"lsmtest", 64, true}; @@ -29,22 +31,23 @@ const lest::test specification[] = { memoryReader.close(); }, - CASE("non-existing shared memory objects err") { + CASE("non-existing shared memory objects err") + { Memory memoryReader{"lsmtest2", 64, true}; EXPECT(kErrorOpeningFailed == memoryReader.open()); std::cout << "2. error when opening non-existing segment: SUCCESS" << std::endl; }, - CASE("using MemoryStreamWriter and MemoryStreamReader to transfer std::string") { - - std::string dataToTransfer = "{ foo: 'coolest IPC ever! 🧑‍💻' }"; + CASE("using MemoryStreamWriter and MemoryStreamReader to transfer std::string") + { + const std::string dataToTransfer = "{ foo: 'coolest IPC ever! 🧑‍💻' }"; SharedMemoryWriteStream write${"jsonPipe", 65535, true}; SharedMemoryReadStream read${"jsonPipe", 65535, true}; write$.write(dataToTransfer); - std::string dataString = read$.readString(); + const std::string dataString = read$.readString(); std::cout << "3. std::string (UTF8): SUCCESS | " << dataString << std::endl; @@ -52,12 +55,12 @@ const lest::test specification[] = { write$.close(); read$.close(); - } - , - - CASE("Write more then less, then read") { + }, - for (int i=0; i<1000; i++) { + CASE("Write more then less, then read") + { + for (int i=0; i<1000; i++) + { SharedMemoryWriteStream write${"varyingDataSizePipe", 65535, true}; SharedMemoryReadStream read${"varyingDataSizePipe", 65535, true}; @@ -76,31 +79,31 @@ const lest::test specification[] = { } std::cout << "4. std::string more/less: SUCCESS; 1000 runs" << std::endl; - }, - CASE("Write a lot") { - std::string blob = - "ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab" - "😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃a" - "b😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃" - "ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab" - "😃ab😃ab😃ab😃ab😃ab"; + CASE("Write a lot") + { + const std::string blob = + "ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab" + "😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃a" + "b😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃" + "ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab😃ab" + "😃ab😃ab😃ab😃ab😃ab"; - SharedMemoryWriteStream write${"blobDataSizePipe", 65535, true}; - SharedMemoryReadStream read${"blobDataSizePipe", 65535, true}; + const SharedMemoryWriteStream write${"blobDataSizePipe", 65535, true}; + const SharedMemoryReadStream read${"blobDataSizePipe", 65535, true}; write$.write(blob); - std::string dataString = read$.readString(); + const std::string dataString = read$.readString(); EXPECT(blob == dataString); std::cout << "5. std::string blob: SUCCESS" << std::endl; }, - CASE("Can read flags, sets the right datatype and data change bit flips") { - + CASE("Can read flags, sets the right datatype and data change bit flips") + { SharedMemoryWriteStream write${"blobDataSizePipe2", 65535, true}; SharedMemoryReadStream read${"blobDataSizePipe2", 65535, true}; @@ -147,43 +150,44 @@ const lest::test specification[] = { read$.close(); }, - CASE("Can write and read a float* array") { - - float numbers[72] = { - 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, - 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, - 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, - 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, - 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, - 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 6.14f, - }; - - SharedMemoryWriteStream write${"numberPipe", 65535, true}; - SharedMemoryReadStream read${"numberPipe", 65535, true}; - - write$.write(numbers, 72); - - EXPECT(read$.readLength(kMemoryTypeFloat) == 72); - - char flagsData = read$.readFlags(); - std::bitset<8> flags(flagsData); - - std::cout - << "Flags for float* read: 0b" - << flags << std::endl; - EXPECT(!!(flagsData & kMemoryTypeFloat)); - EXPECT(!!(flagsData & kMemoryChanged)); - - float* numbersReadPtr = read$.readFloatArray(); - - EXPECT(numbers[0] == numbersReadPtr[0]); - EXPECT(numbers[1] == numbersReadPtr[1]); - EXPECT(numbers[2] == numbersReadPtr[2]); - EXPECT(numbers[3] == numbersReadPtr[3]); - EXPECT(numbers[71] == numbersReadPtr[71]); - - std::cout << "7. float[72]: SUCCESS" << std::endl; - + CASE("Can write and read a float* array") + { + float numbers[72] = + { + 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, + 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, + 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, + 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, + 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, + 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 3.14f, 1.3f, 3.4f, 6.14f, + }; + + SharedMemoryWriteStream write${"numberPipe", 65535, true}; + SharedMemoryReadStream read${"numberPipe", 65535, true}; + + write$.write(numbers, 72); + + EXPECT(read$.readLength(kMemoryTypeFloat) == 72); + + char flagsData = read$.readFlags(); + std::bitset<8> flags(flagsData); + + std::cout + << "Flags for float* read: 0b" + << flags << std::endl; + EXPECT(!!(flagsData & kMemoryTypeFloat)); + EXPECT(!!(flagsData & kMemoryChanged)); + + float* numbersReadPtr = read$.readFloatArray(); + + EXPECT(numbers[0] == numbersReadPtr[0]); + EXPECT(numbers[1] == numbersReadPtr[1]); + EXPECT(numbers[2] == numbersReadPtr[2]); + EXPECT(numbers[3] == numbersReadPtr[3]); + EXPECT(numbers[71] == numbersReadPtr[71]); + + std::cout << "7. float[72]: SUCCESS" << std::endl; + write$.write(numbers, 72); char flagsData2 = read$.readFlags(); @@ -205,60 +209,60 @@ const lest::test specification[] = { << "7.2 status bit flips to one when writing again: SUCCESS: 0b" << flags3 << std::endl; - - delete[] numbersReadPtr; - write$.close(); - read$.close(); + delete[] numbersReadPtr; + write$.close(); + read$.close(); }, - CASE("Can write and read a double* array") { - - double numbers[72] = { - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, - 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, - }; - - SharedMemoryWriteStream write${"numberPipe", 65535, true}; - SharedMemoryReadStream read${"numberPipe", 65535, true}; - - write$.write(numbers, 72); - - EXPECT(read$.readLength(kMemoryTypeDouble) == 72); - - char flagsData = read$.readFlags(); - std::bitset<8> flags(flagsData); - - std::cout - << "Flags for double* read: 0b" - << flags << std::endl; - EXPECT(!!(flagsData & kMemoryTypeDouble)); - EXPECT(!!(flagsData & kMemoryChanged)); - - double* numbersReadPtr = read$.readDoubleArray(); - - EXPECT(numbers[0] == numbersReadPtr[0]); - EXPECT(numbers[1] == numbersReadPtr[1]); - EXPECT(numbers[2] == numbersReadPtr[2]); - EXPECT(numbers[3] == numbersReadPtr[3]); - EXPECT(numbers[71] == numbersReadPtr[71]); - - std::cout << "8. double[72]: SUCCESS" << std::endl; + CASE("Can write and read a double* array") + { + double numbers[72] = + { + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + 1.38038450934, 3.43723642783, 3.1438540345, 331.390696969, + 3.483045044, 6.14848338383, 7.3293840293, 8.4234234, + }; + + SharedMemoryWriteStream write${"numberPipe", 65535, true}; + SharedMemoryReadStream read${"numberPipe", 65535, true}; + + write$.write(numbers, 72); + + EXPECT(read$.readLength(kMemoryTypeDouble) == 72); + + char flagsData = read$.readFlags(); + std::bitset<8> flags(flagsData); + + std::cout + << "Flags for double* read: 0b" + << flags << std::endl; + EXPECT(!!(flagsData & kMemoryTypeDouble)); + EXPECT(!!(flagsData & kMemoryChanged)); + + double* numbersReadPtr = read$.readDoubleArray(); + + EXPECT(numbers[0] == numbersReadPtr[0]); + EXPECT(numbers[1] == numbersReadPtr[1]); + EXPECT(numbers[2] == numbersReadPtr[2]); + EXPECT(numbers[3] == numbersReadPtr[3]); + EXPECT(numbers[71] == numbersReadPtr[71]); + + std::cout << "8. double[72]: SUCCESS" << std::endl; write$.write(numbers, 72); @@ -280,12 +284,13 @@ const lest::test specification[] = { std::cout << "8.2 status bit flips to one when writing again: SUCCESS: 0b" << flags3 << std::endl; - delete[] numbersReadPtr; - write$.close(); - read$.close(); + delete[] numbersReadPtr; + write$.close(); + read$.close(); }, }; -int main (int argc, char *argv[]) { - return lest::run(specification, argc, argv); +int main (const int argc, char *argv[]) +{ + return lest::run(specification, argc, argv); } From 680abfeabaf534bee16e8f9e72a4581de3c74938 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 09:50:07 +0200 Subject: [PATCH 04/41] refactor: update .gitignore and clean up README.md --- .gitignore | 3 ++- README.md | 18 ------------------ build.sh | 3 --- test.sh | 2 -- 4 files changed, 2 insertions(+), 24 deletions(-) delete mode 100755 build.sh delete mode 100755 test.sh diff --git a/.gitignore b/.gitignore index ebb4a75..71bf609 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .cache .vscode build -.idea \ No newline at end of file +.idea +cmake-build-* \ No newline at end of file diff --git a/README.md b/README.md index 748c6d9..f3da241 100644 --- a/README.md +++ b/README.md @@ -92,24 +92,6 @@ enum DataType { to indicate data change. Continuous data reader will thus be able to catch every data change. -## Build - -This project is meant to be built with `cmake` and `clang`. -However, it _should_ also build with MSVC and GCC. - -```sh -./build.sh -``` - -## Test - -Test executables are built automatically and can be executed -to verify the correct function of the implementation on your machine: - -```sh -./test.sh -``` - ## License `libsharedmemory` is released under the MIT license, see the `LICENSE` file. diff --git a/build.sh b/build.sh deleted file mode 100755 index f94e3dc..0000000 --- a/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -B build -cmake --build build \ No newline at end of file diff --git a/test.sh b/test.sh deleted file mode 100755 index b17d410..0000000 --- a/test.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./build/test/lsm_test && echo "ALL TESTS SUCCESSFUL!" || echo "TEST(S) FAILED!" \ No newline at end of file From 57e79cce8350f2556486a700d28a7a83089ea80c Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 10:01:15 +0200 Subject: [PATCH 05/41] ci: add build and test workflow with CMake integration --- .github/workflows/build_and_test.yml | 41 ++++++++++++++++++++++++++++ test/CMakeLists.txt | 8 +++++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build_and_test.yml diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml new file mode 100644 index 0000000..f5eb74e --- /dev/null +++ b/.github/workflows/build_and_test.yml @@ -0,0 +1,41 @@ +name: Build and Test + +on: + pull_request: + branches: + - main + workflow_dispatch: + push: + branches: + - main + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + build_type: [Release] + include: + - os: ubuntu-latest + cc: gcc + cxx: g++ + - os: windows-latest + cc: cl + cxx: cl + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup CMake + uses: jwlawson/actions-setup-cmake@master + + - name: Configure CMake + run: cmake -B build + + - name: Build + run: cmake --build build --config Release + + - name: Test + run: cmake --build build --config Release --target run_test \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 501ce96..fe7e480 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,4 +10,10 @@ elseif(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) target_compile_definitions(lsm_test PRIVATE TYPE_SAFE_TEST_NO_STATIC_ASSERT) endif() -add_test(NAME test COMMAND lsm_test) \ No newline at end of file +add_test(NAME test COMMAND lsm_test) + +add_custom_target(run_test + COMMAND lsm_test + DEPENDS lsm_test + WORKING_DIRECTORY ${CMAKE_PROJECT_DIR} +) From af5463bf2ee78df1b2344ed76253dfd5e4330c97 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 10:06:11 +0200 Subject: [PATCH 06/41] refactor: update EXPECT statements to use unsigned long literals for length checks --- test/test.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/test.cc b/test/test.cc index 92e48cd..01c39d5 100644 --- a/test/test.cc +++ b/test/test.cc @@ -4,6 +4,7 @@ #include #include #include +#include using namespace std; using namespace lsm; @@ -111,7 +112,7 @@ const lest::test specification[] = char flagsData = read$.readFlags(); - EXPECT(read$.readLength(kMemoryTypeString) == 4); + EXPECT(read$.readLength(kMemoryTypeString) == 4UL); std::bitset<8> flags(flagsData); @@ -167,7 +168,7 @@ const lest::test specification[] = write$.write(numbers, 72); - EXPECT(read$.readLength(kMemoryTypeFloat) == 72); + EXPECT(read$.readLength(kMemoryTypeFloat) == 72UL); char flagsData = read$.readFlags(); std::bitset<8> flags(flagsData); @@ -243,7 +244,7 @@ const lest::test specification[] = write$.write(numbers, 72); - EXPECT(read$.readLength(kMemoryTypeDouble) == 72); + EXPECT(read$.readLength(kMemoryTypeDouble) == 72UL); char flagsData = read$.readFlags(); std::bitset<8> flags(flagsData); From 03e176f1f31218110ef726cc2cd4162734288685 Mon Sep 17 00:00:00 2001 From: salvatore rivieccio Date: Wed, 15 Oct 2025 10:16:26 +0200 Subject: [PATCH 07/41] refactor: include cstdint for fixed-width integer types --- include/libsharedmemory/libsharedmemory.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 7bbaa5c..3e3e0f2 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -8,6 +8,7 @@ #include #include #include // nullptr_t, ptrdiff_t, std::size_t +#include // intptr_t, uint8_t, etc. #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN From d6d41afc614ebfbd85d9c310b9e15608c637fbdb Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 10:30:17 +0200 Subject: [PATCH 08/41] refactor: fix constructor and method signature for Memory class --- include/libsharedmemory/libsharedmemory.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 3e3e0f2..2e3cc76 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -101,7 +101,7 @@ class Memory #include // CreateFileMappingA, OpenFileMappingA, etc. -Memory::Memory(const std::string path, const std::size_t size, const bool persist) : _path(path), _size(size), _persist(persist) +Memory::Memory(const std::string& path, std::size_t size, bool persist) : _path(path), _size(size), _persist(persist) { } @@ -154,7 +154,7 @@ Error Memory::createOrOpen(const bool create) return kOK; } -void Memory::destroy() +void Memory::destroy() const { // TODO: Windows needs priviledges to define a shared memory (file mapping) // OBJ_PERMANENT; furthermore, ZwCreateSection would need to be used. From b7ae2268c36decd6b2482b06df126b4ff38591ed Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 10:46:42 +0200 Subject: [PATCH 09/41] refactor: enhance Memory class with persistence file handling and improve memory management --- include/libsharedmemory/libsharedmemory.hpp | 308 ++++++++++++-------- 1 file changed, 192 insertions(+), 116 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 2e3cc76..d79ee2c 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -9,6 +9,7 @@ #include #include // nullptr_t, ptrdiff_t, std::size_t #include // intptr_t, uint8_t, etc. +#include #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN @@ -36,7 +37,7 @@ enum DataType }; // byte sizes of memory layout -constexpr size_t bufferSizeSize = 4; // size_t takes 4 bytes +constexpr size_t bufferSizeSize = 4; // store buffer length as 32-bit value constexpr size_t sizeOfOneFloat = 4; // float takes 4 bytes constexpr size_t sizeOfOneChar = 1; // char takes 1 byte constexpr size_t sizeOfOneDouble = 8; // double takes 8 bytes @@ -90,7 +91,9 @@ class Memory std::size_t _size = 0; bool _persist = true; #if defined(_WIN32) - HANDLE _handle; + HANDLE _handle = nullptr; + HANDLE _fileHandle = INVALID_HANDLE_VALUE; + std::string _persistFilePath; #else int _fd = -1; #endif @@ -101,54 +104,151 @@ class Memory #include // CreateFileMappingA, OpenFileMappingA, etc. +namespace lsm_windows_detail +{ + inline std::string sanitize_name(const std::string& name) + { + std::string sanitized = name; + const std::string invalid = "\\/:*?\"<>|"; + for (size_t idx = 0; idx < sanitized.size(); ++idx) + { + const char ch = sanitized[idx]; + if (ch < 32 || invalid.find(ch) != std::string::npos) + { + sanitized[idx] = '_'; + } + } + return sanitized; + } + + inline std::string persistence_file_path(const std::string& name) + { + char buffer[MAX_PATH] = {0}; + const DWORD pathLength = GetTempPathA(static_cast(sizeof(buffer)), buffer); + std::string basePath(buffer, buffer + pathLength); + if (!basePath.empty()) + { + const char last = basePath[basePath.size() - 1]; + if (last != '\\' && last != '/') + { + basePath.push_back('\\'); + } + } + basePath += "lsm_"; + basePath += sanitize_name(name); + basePath += ".shm"; + return basePath; + } +} + Memory::Memory(const std::string& path, std::size_t size, bool persist) : _path(path), _size(size), _persist(persist) { + if (_persist) + { + _persistFilePath = lsm_windows_detail::persistence_file_path(_path); + } } Error Memory::createOrOpen(const bool create) { - if (create) + const DWORD size_high_order = static_cast((static_cast(_size) >> 32) & 0xFFFFFFFFull); + const DWORD size_low_order = static_cast(static_cast(_size) & 0xFFFFFFFFull); + + if (_persist) { - DWORD size_high_order = 0; - DWORD size_low_order = static_cast(_size); + if (_persistFilePath.empty()) + { + _persistFilePath = lsm_windows_detail::persistence_file_path(_path); + } - _handle = CreateFileMappingA(INVALID_HANDLE_VALUE, // use paging file - NULL, // default security - PAGE_READWRITE, // read/write access - size_high_order, size_low_order, - _path.c_str() // name of mapping object - ); + const DWORD disposition = create ? CREATE_ALWAYS : OPEN_EXISTING; + HANDLE fileHandle = CreateFileA(_persistFilePath.c_str(), + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + disposition, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (fileHandle == INVALID_HANDLE_VALUE) + { + return create ? kErrorCreationFailed : kErrorOpeningFailed; + } + + LARGE_INTEGER requiredSize; + requiredSize.QuadPart = static_cast(_size); + + bool resizeFile = create; + if (!create) + { + LARGE_INTEGER currentSize; + if (GetFileSizeEx(fileHandle, ¤tSize)) + { + resizeFile = currentSize.QuadPart < requiredSize.QuadPart; + } + } + + if (resizeFile) + { + if (!SetFilePointerEx(fileHandle, requiredSize, NULL, FILE_BEGIN) || !SetEndOfFile(fileHandle)) + { + CloseHandle(fileHandle); + return kErrorCreationFailed; + } + } + + _fileHandle = fileHandle; + + _handle = CreateFileMappingA(_fileHandle, + NULL, + PAGE_READWRITE, + size_high_order, + size_low_order, + NULL); if (!_handle) { - return kErrorCreationFailed; + CloseHandle(_fileHandle); + _fileHandle = INVALID_HANDLE_VALUE; + return kErrorMappingFailed; } } else { - _handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, // read/write access - FALSE, // do not inherit the name - _path.c_str() // name of mapping object - ); - - // TODO: Windows has no default support for shared memory persistence - // see: destroy() to implement that + if (create) + { + _handle = CreateFileMappingA(INVALID_HANDLE_VALUE, // use paging file + NULL, // default security + PAGE_READWRITE, // read/write access + size_high_order, size_low_order, + _path.c_str()); // name of mapping object - if (!_handle) + if (!_handle) + { + return kErrorCreationFailed; + } + } + else { - return kErrorOpeningFailed; + _handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, // read/write access + FALSE, // do not inherit the name + _path.c_str()); // name of mapping object + + if (!_handle) + { + return kErrorOpeningFailed; + } } } - // TODO: might want to use GetWriteWatch to get called whenever - // the memory section changes - // https://docs.microsoft.com/de-de/windows/win32/api/memoryapi/nf-memoryapi-getwritewatch?redirectedfrom=MSDN + // Change detection relies on explicit flags to keep the implementation lightweight const DWORD access = FILE_MAP_ALL_ACCESS; // always request read/write view _data = MapViewOfFile(_handle, access, 0, 0, _size); if (!_data) { + close(); return kErrorMappingFailed; } return kOK; @@ -156,13 +256,15 @@ Error Memory::createOrOpen(const bool create) void Memory::destroy() const { - // TODO: Windows needs priviledges to define a shared memory (file mapping) - // OBJ_PERMANENT; furthermore, ZwCreateSection would need to be used. - // Instead of doing this; saving a file here (by name, temp dir) - // and reading memory from file in createOrOpen seems more suitable. - // Especially, because files can be removed on reboot using: - // MoveFileEx() with the MOVEFILE_DELAY_UNTIL_REBOOT flag and lpNewFileName - // set to NULL. + if (_persistFilePath.empty()) + { + return; + } + + if (!DeleteFileA(_persistFilePath.c_str())) + { + MoveFileExA(_persistFilePath.c_str(), NULL, MOVEFILE_DELAY_UNTIL_REBOOT); + } } void Memory::close() @@ -172,7 +274,16 @@ void Memory::close() UnmapViewOfFile(_data); _data = nullptr; } - CloseHandle(_handle); + if (_handle) + { + CloseHandle(_handle); + _handle = nullptr; + } + if (_fileHandle != INVALID_HANDLE_VALUE) + { + CloseHandle(_fileHandle); + _fileHandle = INVALID_HANDLE_VALUE; + } } Memory::~Memory() @@ -316,7 +427,7 @@ class SharedMemoryReadStream char readFlags() const { - const auto memory = static_cast(_memory.data()); + const auto memory = static_cast(_memory.data()); return memory[0]; } @@ -325,38 +436,12 @@ class SharedMemoryReadStream _memory.close(); } - size_t readSize(const char dataType) const + size_t readSize(const char /*dataType*/) const { - void *memory = _memory.data(); - std::size_t size = 0; - - // TODO(kyr0): should be clarified why we need to use size_t there - // for the size to be received correctly, but in float, we need int - // Might be prone to undefined behaviour; should be tested - // with various compilers; otherwise use memcpy() for the size - // and align the memory with one cast. - - if (dataType & kMemoryTypeDouble) - { - const auto *intMemory = static_cast(memory); - // copy size data to size variable - std::memcpy(&size, &intMemory[flagSize], bufferSizeSize); - } - - if (dataType & kMemoryTypeFloat) - { - const auto intMemory = static_cast(memory); - // copy size data to size variable - std::memcpy(&size, &intMemory[flagSize], bufferSizeSize); - } - - if (dataType & kMemoryTypeString) - { - const auto charMemory = static_cast(memory); - // copy size data to size variable - std::memcpy(&size, &charMemory[flagSize], bufferSizeSize); - } - return size; + const auto memory = static_cast(_memory.data()); + std::uint32_t storedSize = 0; + std::memcpy(&storedSize, &memory[flagSize], bufferSizeSize); + return static_cast(storedSize); } size_t readLength(const char dataType) const @@ -386,20 +471,9 @@ class SharedMemoryReadStream * * @return float* */ - // TODO: might wanna use templated functions here like: readNumericArray() double* readDoubleArray() const { - void *memory = _memory.data(); - const std::size_t size = readSize(kMemoryTypeDouble); - const auto typedMemory = static_cast(memory); - - // allocating memory on heap (this might leak) - const auto data = new double[size / sizeOfOneDouble](); - - // copy to data buffer - std::memcpy(data, &typedMemory[flagSize + bufferSizeSize], size); - - return data; + return readNumericArray(kMemoryTypeDouble, sizeOfOneDouble); } /** @@ -410,23 +484,12 @@ class SharedMemoryReadStream */ float* readFloatArray() const { - void *memory = _memory.data(); - const auto typedMemory = static_cast(memory); - - const std::size_t size = readSize(kMemoryTypeFloat); - - // allocating memory on heap (this might leak) - const auto data = new float[size / sizeOfOneFloat](); - - // copy to data buffer - std::memcpy(data, &typedMemory[flagSize + bufferSizeSize], size); - - return data; + return readNumericArray(kMemoryTypeFloat, sizeOfOneFloat); } std::string readString() const { - const auto memory = static_cast(_memory.data()); + const auto memory = static_cast(_memory.data()); const std::size_t size = readSize(kMemoryTypeString); @@ -437,6 +500,19 @@ class SharedMemoryReadStream } private: + template + T* readNumericArray(const char typeFlag, const std::size_t elementSize) const + { + const auto memory = static_cast(_memory.data()); + const std::size_t byteSize = readSize(typeFlag); + const std::size_t length = elementSize == 0 ? 0 : byteSize / elementSize; + + auto data = new T[length](); + std::memcpy(data, &memory[flagSize + bufferSizeSize], byteSize); + + return data; + } + Memory _memory; }; @@ -479,13 +555,18 @@ class SharedMemoryWriteStream { const auto memory = static_cast(_memory.data()); + if (string.size() > std::numeric_limits::max()) + { + throw "String payload exceeds maximum shared memory size."; + } + // 1) copy change flag into buffer for change detection - const char flags = getWriteFlags(kMemoryTypeString, static_cast(_memory.data())[0]); + const char flags = getWriteFlags(kMemoryTypeString, memory[0]); std::memcpy(&memory[0], &flags, flagSize); // 2) copy buffer size into buffer (meta data for deserializing) const char *stringData = string.data(); - const std::size_t bufferSize = string.size(); + const std::uint32_t bufferSize = static_cast(string.size()); // write data std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); @@ -494,37 +575,14 @@ class SharedMemoryWriteStream std::memcpy(&memory[flagSize + bufferSizeSize], stringData, bufferSize); } - // TODO: might wanna use template function here for numeric arrays, - // like void writeNumericArray( data, std::size_t length) void write(const float* data, const std::size_t length) const { - const auto memory = static_cast(_memory.data()); - - const char flags = getWriteFlags(kMemoryTypeFloat, static_cast(_memory.data())[0]); - std::memcpy(&memory[0], &flags, flagSize); - - // 2) copy buffer size into buffer (meta data for deserializing) - const std::size_t bufferSize = length * sizeOfOneFloat; - std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); - - // 3) copy float* into memory buffer - std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); + writeNumericArray(data, length, kMemoryTypeFloat); } void write(const double* data, const std::size_t length) const { - const auto memory = static_cast(_memory.data()); - - const char flags = getWriteFlags(kMemoryTypeDouble, static_cast(_memory.data())[0]); - std::memcpy(&memory[0], &flags, flagSize); - - // 2) copy buffer size into buffer (meta data for deserializing) - const std::size_t bufferSize = length * sizeOfOneDouble; - - std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); - - // 3) copy double* into memory buffer - std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); + writeNumericArray(data, length, kMemoryTypeDouble); } void destroy() const @@ -533,6 +591,24 @@ class SharedMemoryWriteStream } private: + template + void writeNumericArray(const T* data, const std::size_t length, const char typeFlag) const + { + if (length > 0 && length > (std::numeric_limits::max() / sizeof(T))) + { + throw "Numeric payload exceeds maximum shared memory size."; + } + + const auto memory = static_cast(_memory.data()); + + const char flags = getWriteFlags(typeFlag, memory[0]); + std::memcpy(&memory[0], &flags, flagSize); + + const std::uint32_t bufferSize = static_cast(length * sizeof(T)); + std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); + std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); + } + Memory _memory; }; From 8dc8058828715de12d1f5987f49c321b0f6d003a Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 10:53:26 +0200 Subject: [PATCH 10/41] refactor: ensure NOMINMAX is defined for Windows compatibility --- include/libsharedmemory/libsharedmemory.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index d79ee2c..aa6d92e 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -13,6 +13,9 @@ #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN +#ifndef NOMINMAX +#define NOMINMAX 1 +#endif #include #undef WIN32_LEAN_AND_MEAN #endif From 9b5ac0caf351e102e21f85c8a9bd6c7e124ec2c0 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 11:33:33 +0200 Subject: [PATCH 11/41] refactor: update GitHub Actions workflow for improved build and release process --- .github/workflows/build_and_test.yml | 63 +++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index f5eb74e..4a1abe4 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -38,4 +38,65 @@ jobs: run: cmake --build build --config Release - name: Test - run: cmake --build build --config Release --target run_test \ No newline at end of file + run: cmake --build build --config Release --target run_test + + release: + runs-on: ubuntu-latest + needs: build + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + permissions: + contents: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Determine library version + id: version + run: | + python - <<'PY' + import os + import re + from pathlib import Path + + header = Path('include/libsharedmemory/libsharedmemory.hpp').read_text(encoding='utf-8') + + def macro(name: str) -> str: + match = re.search(rf'#define\s+{name}\s+(\d+)', header) + if not match: + raise SystemExit(f'Macro {name} not found in header') + return match.group(1) + + major = macro('LIBSHAREDMEMORY_VERSION_MAJOR') + minor = macro('LIBSHAREDMEMORY_VERSION_MINOR') + patch = macro('LIBSHAREDMEMORY_VERSION_PATCH') + version = f'v{major}.{minor}.{patch}' + + with open(os.environ['GITHUB_OUTPUT'], 'a', encoding='utf-8') as output: + output.write(f'version={version}\n') + PY + + - name: Check if tag already exists + id: tag_check + run: | + git fetch --tags --force + if git rev-parse "${{ steps.version.outputs.version }}" >/dev/null 2>&1; then + echo "exists=true" >>"$GITHUB_OUTPUT" + else + echo "exists=false" >>"$GITHUB_OUTPUT" + fi + + - name: Create GitHub release + if: steps.tag_check.outputs.exists == 'false' + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.version.outputs.version }} + release_name: ${{ steps.version.outputs.version }} + commitish: ${{ github.sha }} + body: | + Automated release for version ${{ steps.version.outputs.version }}. + draft: false + prerelease: false \ No newline at end of file From 14a9a9d96cc346e756e3c0940d5e77ef4980b46d Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 11:40:59 +0200 Subject: [PATCH 12/41] refactor: add release notes generation to GitHub Actions workflow --- .github/workflows/build_and_test.yml | 48 ++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 4a1abe4..be81840 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -87,6 +87,51 @@ jobs: echo "exists=false" >>"$GITHUB_OUTPUT" fi + - name: Generate release notes + if: steps.tag_check.outputs.exists == 'false' + id: notes + run: | + python - <<'PY' + import os + import subprocess + + def git_output(args): + result = subprocess.run(args, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + return result.stdout.strip() + + last_tag = "" + try: + last_tag = git_output(["git", "describe", "--tags", "--abbrev=0"]) + except subprocess.CalledProcessError: + last_tag = "" + + if last_tag: + log_range = f"{last_tag}..HEAD" + else: + log_range = "HEAD" + + try: + notes = git_output(["git", "log", log_range, "--pretty=format:- %s (%h)"]) + except subprocess.CalledProcessError: + notes = "" + + notes = notes.strip() + if not notes: + notes = "No commits since previous release." + + if last_tag: + header = f"Changes since {last_tag}:" + else: + header = "Changes since repository start:" + + body = f"{header}\n\n{notes}" + + with open(os.environ["GITHUB_OUTPUT"], "a", encoding="utf-8") as fh: + fh.write("body< Date: Wed, 15 Oct 2025 11:44:21 +0200 Subject: [PATCH 13/41] refactor: fix tag existence check in release workflow --- .github/workflows/build_and_test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index be81840..cb94624 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -83,8 +83,10 @@ jobs: git fetch --tags --force if git rev-parse "${{ steps.version.outputs.version }}" >/dev/null 2>&1; then echo "exists=true" >>"$GITHUB_OUTPUT" + exit 0 else echo "exists=false" >>"$GITHUB_OUTPUT" + exit 1 fi - name: Generate release notes From 3afe1ec9ad836b2fcd813bc4cb5de0551bf555c1 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 11:51:33 +0200 Subject: [PATCH 14/41] refactor: fix tag existence check logic in release workflow and reorder includes in header file --- .github/workflows/build_and_test.yml | 4 ++-- include/libsharedmemory/libsharedmemory.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index cb94624..59668d7 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -83,10 +83,10 @@ jobs: git fetch --tags --force if git rev-parse "${{ steps.version.outputs.version }}" >/dev/null 2>&1; then echo "exists=true" >>"$GITHUB_OUTPUT" - exit 0 + exit 1 else echo "exists=false" >>"$GITHUB_OUTPUT" - exit 1 + exit 0 fi - name: Generate release notes diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index aa6d92e..82fe67b 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,10 +1,10 @@ #pragma once -#include #define LIBSHAREDMEMORY_VERSION_MAJOR 0 #define LIBSHAREDMEMORY_VERSION_MINOR 0 #define LIBSHAREDMEMORY_VERSION_PATCH 9 +#include #include #include #include // nullptr_t, ptrdiff_t, std::size_t From 8f50b48538fc7a5b1f9cb7488aee902ddfd6384c Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 11:54:37 +0200 Subject: [PATCH 15/41] bump version to 0.1.0 --- include/libsharedmemory/libsharedmemory.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 82fe67b..12e3701 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,8 +1,8 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 0 -#define LIBSHAREDMEMORY_VERSION_MINOR 0 -#define LIBSHAREDMEMORY_VERSION_PATCH 9 +#define LIBSHAREDMEMORY_VERSION_MINOR 1 +#define LIBSHAREDMEMORY_VERSION_PATCH 0 #include #include From 86641425b91308ee67398b61933a88a306263fa6 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 12:06:56 +0200 Subject: [PATCH 16/41] refactor: remove package.json and package-lock.json; enhance test output with logging function --- package-lock.json | 5 -- package.json | 34 ----------- test/test.cc | 149 +++++++++++++++++++++++++++++++++++----------- 3 files changed, 113 insertions(+), 75 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 1b33488..0000000 --- a/package-lock.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "cpp_libsharedmemory", - "version": "0.0.5", - "lockfileVersion": 1 -} diff --git a/package.json b/package.json deleted file mode 100644 index 946fe26..0000000 --- a/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "cpp_libsharedmemory", - "version": "0.0.9", - "description": "C++11 header-only library for using shared memory on Windows, Linux and macOS", - "main": "include/libsharedmemory/libsharedmemory.hpp", - "directories": { - "test": "test" - }, - "files": [ - "include" - ], - "scripts": { - "build": "./build.sh", - "pretest": "npm run build", - "test": "./test.sh" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/kyr0/libsharedmemory.git" - }, - "keywords": [ - "cpp", - "shared", - "memory", - "cross-platform", - "library" - ], - "author": "Aron Homberg ", - "license": "MIT", - "bugs": { - "url": "https://github.com/kyr0/libsharedmemory/issues" - }, - "homepage": "https://github.com/kyr0/libsharedmemory#readme" -} \ No newline at end of file diff --git a/test/test.cc b/test/test.cc index 01c39d5..f1c1f9d 100644 --- a/test/test.cc +++ b/test/test.cc @@ -5,10 +5,20 @@ #include #include #include +#include using namespace std; using namespace lsm; +namespace +{ +inline void log_test_message(const std::string& message) +{ + static int counter = 0; + std::cout << ++counter << ". " << message << std::endl; +} +} + const lest::test specification[] = { CASE("shared memory can be created and opened and transfer uint8_t") @@ -23,7 +33,7 @@ const lest::test specification[] = EXPECT(kOK == memoryReader.open()); - std::cout << "1. single uint8_t: SUCCESS" << std::endl; + log_test_message("single uint8_t: SUCCESS"); EXPECT(0x11 == ((uint8_t*)memoryReader.data())[0]); EXPECT(0x34 == ((uint8_t *)memoryReader.data())[1]); @@ -36,7 +46,7 @@ const lest::test specification[] = { Memory memoryReader{"lsmtest2", 64, true}; EXPECT(kErrorOpeningFailed == memoryReader.open()); - std::cout << "2. error when opening non-existing segment: SUCCESS" << std::endl; + log_test_message("error when opening non-existing segment: SUCCESS"); }, CASE("using MemoryStreamWriter and MemoryStreamReader to transfer std::string") @@ -50,7 +60,9 @@ const lest::test specification[] = const std::string dataString = read$.readString(); - std::cout << "3. std::string (UTF8): SUCCESS | " << dataString << std::endl; + std::ostringstream msg; + msg << "std::string (UTF8): SUCCESS | " << dataString; + log_test_message(msg.str()); EXPECT(dataToTransfer == dataString); @@ -78,8 +90,7 @@ const lest::test specification[] = write$.close(); read$.close(); } - std::cout << "4. std::string more/less: SUCCESS; 1000 runs" - << std::endl; + log_test_message("std::string more/less: SUCCESS; 1000 runs"); }, CASE("Write a lot") @@ -100,7 +111,7 @@ const lest::test specification[] = EXPECT(blob == dataString); - std::cout << "5. std::string blob: SUCCESS" << std::endl; + log_test_message("std::string blob: SUCCESS"); }, CASE("Can read flags, sets the right datatype and data change bit flips") @@ -118,13 +129,15 @@ const lest::test specification[] = EXPECT(!!(flagsData & kMemoryTypeString)); - std::cout << "6. status flag shows string data type flag: SUCCESS: 0b" - << flags << std::endl; + std::ostringstream statusMsg; + statusMsg << "status flag shows string data type flag: SUCCESS: 0b" << flags; + log_test_message(statusMsg.str()); EXPECT(!!(flagsData & kMemoryChanged)); - std::cout << "6.1 status flag has the change bit set: SUCCESS: 0b" - << flags << std::endl; + std::ostringstream changeMsg; + changeMsg << "status flag has the change bit set: SUCCESS: 0b" << flags; + log_test_message(changeMsg.str()); write$.write("foo!"); @@ -139,13 +152,13 @@ const lest::test specification[] = std::bitset<8> flags3(flagsData3); EXPECT(!!(flagsData3 & kMemoryChanged)); - std::cout - << "6.2 status bit flips to zero when writing again: SUCCESS: 0b" - << flags2 << std::endl; + std::ostringstream zeroMsg; + zeroMsg << "status bit flips to zero when writing again: SUCCESS: 0b" << flags2; + log_test_message(zeroMsg.str()); - std::cout - << "6.3 status bit flips to one when writing again: SUCCESS: 0b" - << flags3 << std::endl; + std::ostringstream oneMsg; + oneMsg << "status bit flips to one when writing again: SUCCESS: 0b" << flags3; + log_test_message(oneMsg.str()); write$.close(); read$.close(); @@ -173,9 +186,9 @@ const lest::test specification[] = char flagsData = read$.readFlags(); std::bitset<8> flags(flagsData); - std::cout - << "Flags for float* read: 0b" - << flags << std::endl; + std::ostringstream floatFlagMsg; + floatFlagMsg << "Flags for float* read: 0b" << flags; + log_test_message(floatFlagMsg.str()); EXPECT(!!(flagsData & kMemoryTypeFloat)); EXPECT(!!(flagsData & kMemoryChanged)); @@ -187,7 +200,7 @@ const lest::test specification[] = EXPECT(numbers[3] == numbersReadPtr[3]); EXPECT(numbers[71] == numbersReadPtr[71]); - std::cout << "7. float[72]: SUCCESS" << std::endl; + log_test_message("float[72]: SUCCESS"); write$.write(numbers, 72); @@ -202,13 +215,13 @@ const lest::test specification[] = std::bitset<8> flags3(flagsData3); EXPECT(!!(flagsData3 & kMemoryChanged)); - std::cout - << "7.1 status bit flips to zero when writing again: SUCCESS: 0b" - << flags2 << std::endl; + std::ostringstream floatZeroMsg; + floatZeroMsg << "status bit flips to zero when writing again: SUCCESS: 0b" << flags2; + log_test_message(floatZeroMsg.str()); - std::cout - << "7.2 status bit flips to one when writing again: SUCCESS: 0b" - << flags3 << std::endl; + std::ostringstream floatOneMsg; + floatOneMsg << "status bit flips to one when writing again: SUCCESS: 0b" << flags3; + log_test_message(floatOneMsg.str()); delete[] numbersReadPtr; write$.close(); @@ -249,9 +262,9 @@ const lest::test specification[] = char flagsData = read$.readFlags(); std::bitset<8> flags(flagsData); - std::cout - << "Flags for double* read: 0b" - << flags << std::endl; + std::ostringstream doubleFlagMsg; + doubleFlagMsg << "Flags for double* read: 0b" << flags; + log_test_message(doubleFlagMsg.str()); EXPECT(!!(flagsData & kMemoryTypeDouble)); EXPECT(!!(flagsData & kMemoryChanged)); @@ -263,7 +276,7 @@ const lest::test specification[] = EXPECT(numbers[3] == numbersReadPtr[3]); EXPECT(numbers[71] == numbersReadPtr[71]); - std::cout << "8. double[72]: SUCCESS" << std::endl; + log_test_message("double[72]: SUCCESS"); write$.write(numbers, 72); @@ -278,17 +291,81 @@ const lest::test specification[] = std::bitset<8> flags3(flagsData3); EXPECT(!!(flagsData3 & kMemoryChanged)); - std::cout - << "8.1 status bit flips to zero when writing again: SUCCESS: 0b" - << flags2 << std::endl; + std::ostringstream doubleZeroMsg; + doubleZeroMsg << "status bit flips to zero when writing again: SUCCESS: 0b" << flags2; + log_test_message(doubleZeroMsg.str()); - std::cout - << "8.2 status bit flips to one when writing again: SUCCESS: 0b" - << flags3 << std::endl; + std::ostringstream doubleOneMsg; + doubleOneMsg << "status bit flips to one when writing again: SUCCESS: 0b" << flags3; + log_test_message(doubleOneMsg.str()); delete[] numbersReadPtr; write$.close(); read$.close(); }, + + CASE("Persistent shared memory can be reopened") + { + const std::string pipeName = "persistSegmentTest"; + { + Memory writer{pipeName, 128, true}; + EXPECT(kOK == writer.create()); + + auto *bytes = static_cast(writer.data()); + bytes[0] = 0xAB; + bytes[1] = 0xCD; + + writer.close(); + } + + Memory reader{pipeName, 128, true}; + EXPECT(kOK == reader.open()); + + auto *readBytes = static_cast(reader.data()); + EXPECT(0xAB == readBytes[0]); + EXPECT(0xCD == readBytes[1]); + + log_test_message("Persistent segment reopened with data intact: SUCCESS"); + + reader.close(); + reader.destroy(); + }, + + CASE("Ephemeral shared memory is removed after destruction") + { + const std::string pipeName = "ephemeralSegmentTest"; + { + Memory ephemeral{pipeName, 128, false}; + EXPECT(kOK == ephemeral.create()); + + static_cast(ephemeral.data())[0] = 0x77; + ephemeral.close(); + } + + Memory reopen{pipeName, 128, false}; + EXPECT(kErrorOpeningFailed == reopen.open()); + + log_test_message("Ephemeral segment removed after destruction: SUCCESS"); + }, + + CASE("Shared memory streams handle empty strings") + { + const std::string pipeName = "emptyStringPipe"; + + SharedMemoryWriteStream writer{pipeName, 64, true}; + SharedMemoryReadStream reader{pipeName, 64, true}; + + const std::string emptyValue; + writer.write(emptyValue); + + EXPECT(0UL == reader.readLength(kMemoryTypeString)); + EXPECT(emptyValue == reader.readString()); + + log_test_message("Empty string round-trip through shared memory: SUCCESS"); + + writer.close(); + reader.close(); + writer.destroy(); + }, }; int main (const int argc, char *argv[]) From 95e8859f7ea49bbebb10890d93988c25179bbe76 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 15 Oct 2025 12:11:31 +0200 Subject: [PATCH 17/41] refactor: update library version to 1.0.0 and remove conditional release step --- .github/workflows/build_and_test.yml | 1 - include/libsharedmemory/libsharedmemory.hpp | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 59668d7..aa32803 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -43,7 +43,6 @@ jobs: release: runs-on: ubuntu-latest needs: build - if: github.event_name == 'push' && github.ref == 'refs/heads/main' permissions: contents: write steps: diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 12e3701..a6e9f8d 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once -#define LIBSHAREDMEMORY_VERSION_MAJOR 0 -#define LIBSHAREDMEMORY_VERSION_MINOR 1 +#define LIBSHAREDMEMORY_VERSION_MAJOR 1 +#define LIBSHAREDMEMORY_VERSION_MINOR 0 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include From 7ec949a9c5ca544bd5b77b5b1856e065e6d528d8 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Thu, 16 Oct 2025 17:46:01 +0200 Subject: [PATCH 18/41] refactor: increment LIBSHAREDMEMORY_VERSION_MINOR to 1 and clean up includes --- include/libsharedmemory/libsharedmemory.hpp | 43 +++++++-------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index a6e9f8d..c3b371c 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 0 +#define LIBSHAREDMEMORY_VERSION_MINOR 1 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -11,6 +11,12 @@ #include // intptr_t, uint8_t, etc. #include +#if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) +#include // O_* constants +#include // mmap, munmap +#include // shm functions, close +#endif + #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN #ifndef NOMINMAX @@ -299,25 +305,6 @@ Memory::~Memory() } #endif // defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) -#if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) - -#include // for O_* constants -#include // mmap, munmap -#include // unlink, close - -// Helper function to call POSIX close() without name collision -namespace lsm_internal -{ - inline int posix_close(const int fd) - { - return close(fd); - } -} - -#if defined(__APPLE__) - -#endif // __APPLE__ - inline Memory::Memory(const std::string& path, const std::size_t size, const bool persist) : _size(size), _persist(persist) { _path = "/" + path; @@ -400,8 +387,8 @@ inline void Memory::close() { const int fd_to_close = _fd; _fd = -1; - // Use helper function to avoid name collision - lsm_internal::posix_close(fd_to_close); + // call POSIX close directly to avoid name collision with method close() + ::close(fd_to_close); } } @@ -414,8 +401,6 @@ inline Memory::~Memory() } } -#endif // defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) - class SharedMemoryReadStream { public: @@ -482,8 +467,8 @@ class SharedMemoryReadStream /** * @brief Returns a float* read from shared memory * Caller has the obligation to call delete [] on the returning float*. - * - * @return float* + * + * @return float* */ float* readFloatArray() const { @@ -569,7 +554,7 @@ class SharedMemoryWriteStream // 2) copy buffer size into buffer (meta data for deserializing) const char *stringData = string.data(); - const std::uint32_t bufferSize = static_cast(string.size()); + const auto bufferSize = static_cast(string.size()); // write data std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); @@ -607,7 +592,7 @@ class SharedMemoryWriteStream const char flags = getWriteFlags(typeFlag, memory[0]); std::memcpy(&memory[0], &flags, flagSize); - const std::uint32_t bufferSize = static_cast(length * sizeof(T)); + const auto bufferSize = static_cast(length * sizeof(T)); std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); } @@ -615,4 +600,4 @@ class SharedMemoryWriteStream Memory _memory; }; -}; // namespace lsm +}; // namespace lsm \ No newline at end of file From b1927a017eb8a30bab6f96ccdcbc2bc27fa24df9 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Thu, 16 Oct 2025 16:59:28 +0100 Subject: [PATCH 19/41] refactor: update compiler options for MSVC and add POSIX shared memory implementation --- CMakeLists.txt | 4 ++-- include/libsharedmemory/libsharedmemory.hpp | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8320e0f..9127bf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,8 @@ target_sources(lsm INTERFACE "$") target_include_directories(lsm INTERFACE $) target_include_directories(lsm SYSTEM INTERFACE $/include>) -if (${CMAKE_GENERATOR} MATCHES "Visual") - target_compile_options(lsm INTERFACE -W3 -EHsc) +if (MSVC) + target_compile_options(lsm INTERFACE /W3 /EHsc) else() target_compile_options(lsm INTERFACE -Wall -Wno-missing-braces -std=c++11 -fPIC) endif() diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index c3b371c..27153af 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -305,6 +305,9 @@ Memory::~Memory() } #endif // defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) +// POSIX shared memory implementation +#if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) + inline Memory::Memory(const std::string& path, const std::size_t size, const bool persist) : _size(size), _persist(persist) { _path = "/" + path; @@ -401,6 +404,8 @@ inline Memory::~Memory() } } +#endif // POSIX implementation + class SharedMemoryReadStream { public: From 14e34a6134ca846cba83a7540907975da815625c Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Fri, 17 Oct 2025 10:32:35 +0100 Subject: [PATCH 20/41] refactor: increment LIBSHAREDMEMORY_VERSION_MINOR to 2 --- include/libsharedmemory/libsharedmemory.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 27153af..f0fe6ae 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 1 +#define LIBSHAREDMEMORY_VERSION_MINOR 2 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -23,6 +23,8 @@ #define NOMINMAX 1 #endif #include +#undef min +#undef max #undef WIN32_LEAN_AND_MEAN #endif From 63e1c7c80d87efbaf617f228aa56342ac0c2de3c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 06:22:31 +0000 Subject: [PATCH 21/41] Initial plan From 2f238eac8e6b0f0b4562253ddf3b6604f11290c3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 06:29:00 +0000 Subject: [PATCH 22/41] Modernize library to C++20 with enhanced type safety and features Co-authored-by: draugvar <12036000+draugvar@users.noreply.github.com> --- CMakeLists.txt | 7 +- README.md | 2 +- include/libsharedmemory/libsharedmemory.hpp | 114 ++++++++++++-------- test/CMakeLists.txt | 2 +- test/test.cc | 14 +-- 5 files changed, 81 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9127bf4..33da8db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.12) cmake_policy(SET CMP0042 NEW) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) project(LSM) @@ -14,9 +15,9 @@ target_include_directories(lsm INTERFACE $/include>) if (MSVC) - target_compile_options(lsm INTERFACE /W3 /EHsc) + target_compile_options(lsm INTERFACE /W3 /EHsc /std:c++20) else() - target_compile_options(lsm INTERFACE -Wall -Wno-missing-braces -std=c++11 -fPIC) + target_compile_options(lsm INTERFACE -Wall -Wno-missing-braces -std=c++20 -fPIC) endif() option(LSM_BUILD_TEST "build test" ON) diff --git a/README.md b/README.md index f3da241..37789eb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # `libsharedmemory` -`libsharedmemory` is a small C++11 header-only library for using shared memory on Windows, Linux and macOS. `libsharedmemory` makes it easy to transfer data between isolated host OS processes. It also helps inter-connecting modules of applications that are implemented in different programming languages. It allows for simple read/write data transfer using single, indexed memory address access and also using array-types like `std::string`, `float*`, `double*`. +`libsharedmemory` is a small C++20 header-only library for using shared memory on Windows, Linux and macOS. `libsharedmemory` makes it easy to transfer data between isolated host OS processes. It also helps inter-connecting modules of applications that are implemented in different programming languages. It allows for simple read/write data transfer using single, indexed memory address access and also using array-types like `std::string`, `float*`, `double*`. diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index f0fe6ae..f9153b0 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -7,9 +7,13 @@ #include #include #include +#include #include // nullptr_t, ptrdiff_t, std::size_t #include // intptr_t, uint8_t, etc. #include +#include +#include +#include #if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) #include // O_* constants @@ -31,15 +35,15 @@ namespace lsm { -enum Error +enum class Error { - kOK = 0, - kErrorCreationFailed = 100, - kErrorMappingFailed = 110, - kErrorOpeningFailed = 120, + OK = 0, + CreationFailed = 100, + MappingFailed = 110, + OpeningFailed = 120, }; -enum DataType +enum DataType : std::uint8_t { kMemoryChanged = 1, kMemoryTypeString = 2, @@ -48,11 +52,11 @@ enum DataType }; // byte sizes of memory layout -constexpr size_t bufferSizeSize = 4; // store buffer length as 32-bit value -constexpr size_t sizeOfOneFloat = 4; // float takes 4 bytes -constexpr size_t sizeOfOneChar = 1; // char takes 1 byte -constexpr size_t sizeOfOneDouble = 8; // double takes 8 bytes -constexpr size_t flagSize = 1; // char takes 1 byte +inline constexpr std::size_t bufferSizeSize = 4; // store buffer length as 32-bit value +inline constexpr std::size_t sizeOfOneFloat = 4; // float takes 4 bytes +inline constexpr std::size_t sizeOfOneChar = 1; // char takes 1 byte +inline constexpr std::size_t sizeOfOneDouble = 8; // double takes 8 bytes +inline constexpr std::size_t flagSize = 1; // char takes 1 byte class Memory { @@ -62,32 +66,37 @@ class Memory explicit Memory(const std::string& path, std::size_t size, bool persist); // create a shared memory area and open it for writing - Error create() + [[nodiscard]] Error create() { return createOrOpen(true); } // open an existing shared memory for reading - Error open() + [[nodiscard]] Error open() { return createOrOpen(false); } - std::size_t size() const + [[nodiscard]] std::size_t size() const noexcept { return _size; } - const std::string &path() + [[nodiscard]] const std::string &path() const noexcept { return _path; } - void *data() const + [[nodiscard]] void *data() const noexcept { return _data; } + [[nodiscard]] std::span as_bytes() const noexcept + { + return std::span(static_cast(_data), _size); + } + void destroy() const; void close(); @@ -95,7 +104,7 @@ class Memory ~Memory(); private: - Error createOrOpen(bool create); + [[nodiscard]] Error createOrOpen(bool create); std::string _path; void *_data = nullptr; @@ -183,7 +192,7 @@ Error Memory::createOrOpen(const bool create) if (fileHandle == INVALID_HANDLE_VALUE) { - return create ? kErrorCreationFailed : kErrorOpeningFailed; + return create ? Error::CreationFailed : Error::OpeningFailed; } LARGE_INTEGER requiredSize; @@ -204,7 +213,7 @@ Error Memory::createOrOpen(const bool create) if (!SetFilePointerEx(fileHandle, requiredSize, NULL, FILE_BEGIN) || !SetEndOfFile(fileHandle)) { CloseHandle(fileHandle); - return kErrorCreationFailed; + return Error::CreationFailed; } } @@ -221,7 +230,7 @@ Error Memory::createOrOpen(const bool create) { CloseHandle(_fileHandle); _fileHandle = INVALID_HANDLE_VALUE; - return kErrorMappingFailed; + return Error::MappingFailed; } } else @@ -236,7 +245,7 @@ Error Memory::createOrOpen(const bool create) if (!_handle) { - return kErrorCreationFailed; + return Error::CreationFailed; } } else @@ -247,7 +256,7 @@ Error Memory::createOrOpen(const bool create) if (!_handle) { - return kErrorOpeningFailed; + return Error::OpeningFailed; } } } @@ -260,9 +269,9 @@ Error Memory::createOrOpen(const bool create) if (!_data) { close(); - return kErrorMappingFailed; + return Error::MappingFailed; } - return kOK; + return Error::OK; } void Memory::destroy() const @@ -327,7 +336,7 @@ inline Error Memory::createOrOpen(const bool create) { if (errno != ENOENT) { - return kErrorCreationFailed; + return Error::CreationFailed; } } } @@ -339,11 +348,11 @@ inline Error Memory::createOrOpen(const bool create) { if (create) { - return kErrorCreationFailed; + return Error::CreationFailed; } else { - return kErrorOpeningFailed; + return Error::OpeningFailed; } } @@ -354,7 +363,7 @@ inline Error Memory::createOrOpen(const bool create) const int ret = ftruncate(_fd, _size); if (ret != 0) { - return kErrorCreationFailed; + return Error::CreationFailed; } } @@ -370,14 +379,14 @@ inline Error Memory::createOrOpen(const bool create) if (_data == MAP_FAILED) { - return kErrorMappingFailed; + return Error::MappingFailed; } if (!_data) { - return kErrorMappingFailed; + return Error::MappingFailed; } - return kOK; + return Error::OK; } inline void Memory::destroy() const @@ -414,13 +423,13 @@ class SharedMemoryReadStream SharedMemoryReadStream(const std::string& name, const std::size_t bufferSize, const bool isPersistent): _memory(name, bufferSize, isPersistent) { - if (_memory.open() != kOK) + if (_memory.open() != Error::OK) { throw "Shared memory segment could not be opened."; } } - char readFlags() const + [[nodiscard]] char readFlags() const noexcept { const auto memory = static_cast(_memory.data()); return memory[0]; @@ -431,7 +440,7 @@ class SharedMemoryReadStream _memory.close(); } - size_t readSize(const char /*dataType*/) const + [[nodiscard]] size_t readSize(const char /*dataType*/) const noexcept { const auto memory = static_cast(_memory.data()); std::uint32_t storedSize = 0; @@ -439,7 +448,7 @@ class SharedMemoryReadStream return static_cast(storedSize); } - size_t readLength(const char dataType) const + [[nodiscard]] size_t readLength(const char dataType) const noexcept { const size_t size = readSize(dataType); @@ -466,7 +475,7 @@ class SharedMemoryReadStream * * @return float* */ - double* readDoubleArray() const + [[nodiscard]] double* readDoubleArray() const { return readNumericArray(kMemoryTypeDouble, sizeOfOneDouble); } @@ -477,12 +486,12 @@ class SharedMemoryReadStream * * @return float* */ - float* readFloatArray() const + [[nodiscard]] float* readFloatArray() const { return readNumericArray(kMemoryTypeFloat, sizeOfOneFloat); } - std::string readString() const + [[nodiscard]] std::string readString() const { const auto memory = static_cast(_memory.data()); @@ -496,7 +505,7 @@ class SharedMemoryReadStream private: template - T* readNumericArray(const char typeFlag, const std::size_t elementSize) const + [[nodiscard]] T* readNumericArray(const char typeFlag, const std::size_t elementSize) const { const auto memory = static_cast(_memory.data()); const std::size_t byteSize = readSize(typeFlag); @@ -517,7 +526,7 @@ class SharedMemoryWriteStream SharedMemoryWriteStream(const std::string& name, const std::size_t bufferSize, const bool isPersistent): _memory(name, bufferSize, isPersistent) { - if (_memory.create() != kOK) + if (_memory.create() != Error::OK) { throw "Shared memory segment could not be created."; } @@ -529,7 +538,7 @@ class SharedMemoryWriteStream } // https://stackoverflow.com/questions/18591924/how-to-use-bitmask - static char getWriteFlags(const char type, const char currentFlags) + [[nodiscard]] static constexpr char getWriteFlags(const char type, const char currentFlags) noexcept { char flags = type; @@ -546,7 +555,7 @@ class SharedMemoryWriteStream return flags; } - void write(const std::string& string) const + void write(std::string_view string) const { const auto memory = static_cast(_memory.data()); @@ -570,14 +579,24 @@ class SharedMemoryWriteStream std::memcpy(&memory[flagSize + bufferSizeSize], stringData, bufferSize); } + void write(std::span data) const + { + writeNumericArray(data, kMemoryTypeFloat); + } + void write(const float* data, const std::size_t length) const { - writeNumericArray(data, length, kMemoryTypeFloat); + write(std::span(data, length)); + } + + void write(std::span data) const + { + writeNumericArray(data, kMemoryTypeDouble); } void write(const double* data, const std::size_t length) const { - writeNumericArray(data, length, kMemoryTypeDouble); + write(std::span(data, length)); } void destroy() const @@ -587,8 +606,11 @@ class SharedMemoryWriteStream private: template - void writeNumericArray(const T* data, const std::size_t length, const char typeFlag) const + requires std::is_floating_point_v + void writeNumericArray(std::span data, const char typeFlag) const { + const std::size_t length = data.size(); + if (length > 0 && length > (std::numeric_limits::max() / sizeof(T))) { throw "Numeric payload exceeds maximum shared memory size."; @@ -601,7 +623,7 @@ class SharedMemoryWriteStream const auto bufferSize = static_cast(length * sizeof(T)); std::memcpy(&memory[flagSize], &bufferSize, bufferSizeSize); - std::memcpy(&memory[flagSize + bufferSizeSize], data, bufferSize); + std::memcpy(&memory[flagSize + bufferSizeSize], data.data(), bufferSize); } Memory _memory; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fe7e480..02d60c2 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,7 +2,7 @@ set(source_files test.cc) add_executable(lsm_test ${source_files}) target_link_libraries(lsm_test PUBLIC lsm) target_include_directories(lsm_test PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) -set_property(TARGET lsm_test PROPERTY CXX_STANDARD 11) +set_property(TARGET lsm_test PROPERTY CXX_STANDARD 20) if(MSVC) target_compile_definitions(lsm_test PRIVATE TYPE_SAFE_TEST_NO_STATIC_ASSERT) diff --git a/test/test.cc b/test/test.cc index f1c1f9d..14f2697 100644 --- a/test/test.cc +++ b/test/test.cc @@ -24,14 +24,14 @@ const lest::test specification[] = CASE("shared memory can be created and opened and transfer uint8_t") { Memory memoryWriter {"lsmtest", 64, true}; - EXPECT(kOK == memoryWriter.create()); + EXPECT(Error::OK == memoryWriter.create()); static_cast(memoryWriter.data())[0] = 0x11; static_cast(memoryWriter.data())[1] = 0x34; Memory memoryReader{"lsmtest", 64, true}; - EXPECT(kOK == memoryReader.open()); + EXPECT(Error::OK == memoryReader.open()); log_test_message("single uint8_t: SUCCESS"); @@ -45,7 +45,7 @@ const lest::test specification[] = CASE("non-existing shared memory objects err") { Memory memoryReader{"lsmtest2", 64, true}; - EXPECT(kErrorOpeningFailed == memoryReader.open()); + EXPECT(Error::OpeningFailed == memoryReader.open()); log_test_message("error when opening non-existing segment: SUCCESS"); }, @@ -308,7 +308,7 @@ const lest::test specification[] = const std::string pipeName = "persistSegmentTest"; { Memory writer{pipeName, 128, true}; - EXPECT(kOK == writer.create()); + EXPECT(Error::OK == writer.create()); auto *bytes = static_cast(writer.data()); bytes[0] = 0xAB; @@ -318,7 +318,7 @@ const lest::test specification[] = } Memory reader{pipeName, 128, true}; - EXPECT(kOK == reader.open()); + EXPECT(Error::OK == reader.open()); auto *readBytes = static_cast(reader.data()); EXPECT(0xAB == readBytes[0]); @@ -335,14 +335,14 @@ const lest::test specification[] = const std::string pipeName = "ephemeralSegmentTest"; { Memory ephemeral{pipeName, 128, false}; - EXPECT(kOK == ephemeral.create()); + EXPECT(Error::OK == ephemeral.create()); static_cast(ephemeral.data())[0] = 0x77; ephemeral.close(); } Memory reopen{pipeName, 128, false}; - EXPECT(kErrorOpeningFailed == reopen.open()); + EXPECT(Error::OpeningFailed == reopen.open()); log_test_message("Ephemeral segment removed after destruction: SUCCESS"); }, From edc49cbff170129934eedcbed4185a01a5862872 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 06:31:01 +0000 Subject: [PATCH 23/41] Address code review feedback: remove unused include and trailing whitespace Co-authored-by: draugvar <12036000+draugvar@users.noreply.github.com> --- include/libsharedmemory/libsharedmemory.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index f9153b0..ed06f11 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -12,7 +12,6 @@ #include // intptr_t, uint8_t, etc. #include #include -#include #include #if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) @@ -610,7 +609,7 @@ class SharedMemoryWriteStream void writeNumericArray(std::span data, const char typeFlag) const { const std::size_t length = data.size(); - + if (length > 0 && length > (std::numeric_limits::max() / sizeof(T))) { throw "Numeric payload exceeds maximum shared memory size."; From 20e4ff28204fa70794572a4fab9e16c5155df411 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 06:32:31 +0000 Subject: [PATCH 24/41] Complete C++20/23 modernization with security validation Co-authored-by: draugvar <12036000+draugvar@users.noreply.github.com> --- _codeql_build_dir/CMakeCache.txt | 392 ++++++++ .../CMakeFiles/3.31.6/CMakeCCompiler.cmake | 81 ++ .../CMakeFiles/3.31.6/CMakeCXXCompiler.cmake | 101 ++ .../3.31.6/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 15968 bytes .../3.31.6/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 15992 bytes .../CMakeFiles/3.31.6/CMakeSystem.cmake | 15 + .../3.31.6/CompilerIdC/CMakeCCompilerId.c | 904 +++++++++++++++++ .../CMakeFiles/3.31.6/CompilerIdC/a.out | Bin 0 -> 16088 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 ++++++++++++++++++ .../CMakeFiles/3.31.6/CompilerIdCXX/a.out | Bin 0 -> 16096 bytes .../CMakeFiles/CMakeConfigureLog.yaml | 566 +++++++++++ .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeRuleHashes.txt | 2 + _codeql_build_dir/CMakeFiles/Makefile.cmake | 144 +++ _codeql_build_dir/CMakeFiles/Makefile2 | 177 ++++ .../CMakeFiles/TargetDirectories.txt | 8 + .../CMakeFiles/cmake.check_cache | 1 + _codeql_build_dir/CMakeFiles/progress.marks | 1 + _codeql_build_dir/CTestTestfile.cmake | 7 + _codeql_build_dir/Makefile | 182 ++++ _codeql_build_dir/cmake_install.cmake | 72 ++ _codeql_build_dir/compile_commands.json | 8 + .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/lsm_test.dir/DependInfo.cmake | 24 + .../test/CMakeFiles/lsm_test.dir/build.make | 117 +++ .../CMakeFiles/lsm_test.dir/cmake_clean.cmake | 12 + .../lsm_test.dir/compiler_depend.make | 2 + .../lsm_test.dir/compiler_depend.ts | 2 + .../test/CMakeFiles/lsm_test.dir/depend.make | 2 + .../test/CMakeFiles/lsm_test.dir/flags.make | 10 + .../test/CMakeFiles/lsm_test.dir/link.d | 97 ++ .../test/CMakeFiles/lsm_test.dir/link.txt | 1 + .../CMakeFiles/lsm_test.dir/progress.make | 3 + .../test/CMakeFiles/lsm_test.dir/test.cc.o | Bin 0 -> 339680 bytes .../test/CMakeFiles/lsm_test.dir/test.cc.o.d | 269 +++++ .../test/CMakeFiles/progress.marks | 1 + .../CMakeFiles/run_test.dir/DependInfo.cmake | 22 + .../test/CMakeFiles/run_test.dir/build.make | 93 ++ .../CMakeFiles/run_test.dir/cmake_clean.cmake | 8 + .../run_test.dir/compiler_depend.make | 2 + .../run_test.dir/compiler_depend.ts | 2 + .../CMakeFiles/run_test.dir/progress.make | 1 + _codeql_build_dir/test/CTestTestfile.cmake | 8 + _codeql_build_dir/test/Makefile | 211 ++++ _codeql_build_dir/test/cmake_install.cmake | 50 + _codeql_build_dir/test/lsm_test | Bin 0 -> 198160 bytes _codeql_detected_source_root | 1 + 47 files changed, 4550 insertions(+) create mode 100644 _codeql_build_dir/CMakeCache.txt create mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake create mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake create mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin create mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin create mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake create mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c create mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out create mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out create mode 100644 _codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml create mode 100644 _codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 _codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt create mode 100644 _codeql_build_dir/CMakeFiles/Makefile.cmake create mode 100644 _codeql_build_dir/CMakeFiles/Makefile2 create mode 100644 _codeql_build_dir/CMakeFiles/TargetDirectories.txt create mode 100644 _codeql_build_dir/CMakeFiles/cmake.check_cache create mode 100644 _codeql_build_dir/CMakeFiles/progress.marks create mode 100644 _codeql_build_dir/CTestTestfile.cmake create mode 100644 _codeql_build_dir/Makefile create mode 100644 _codeql_build_dir/cmake_install.cmake create mode 100644 _codeql_build_dir/compile_commands.json create mode 100644 _codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o create mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d create mode 100644 _codeql_build_dir/test/CMakeFiles/progress.marks create mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake create mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/build.make create mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake create mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make create mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts create mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make create mode 100644 _codeql_build_dir/test/CTestTestfile.cmake create mode 100644 _codeql_build_dir/test/Makefile create mode 100644 _codeql_build_dir/test/cmake_install.cmake create mode 100755 _codeql_build_dir/test/lsm_test create mode 120000 _codeql_detected_source_root diff --git a/_codeql_build_dir/CMakeCache.txt b/_codeql_build_dir/CMakeCache.txt new file mode 100644 index 0000000..bbf8580 --- /dev/null +++ b/_codeql_build_dir/CMakeCache.txt @@ -0,0 +1,392 @@ +# This is the CMakeCache file. +# For build in directory: /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir +# It was generated by CMake: /usr/local/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +BUILD_DOCS:UNINITIALIZED=OFF + +//No help, variable specified on the command line. +BUILD_DOCUMENTATION:UNINITIALIZED=OFF + +//No help, variable specified on the command line. +CATKIN_ENABLE_TESTING:UNINITIALIZED=OFF + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Release + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/pkgRedirects + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=LSM + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=ON + +//Value Computed by CMake +LSM_BINARY_DIR:STATIC=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir + +//build test +LSM_BUILD_TEST:BOOL=ON + +//Value Computed by CMake +LSM_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +LSM_SOURCE_DIR:STATIC=/home/runner/work/libsharedmemory/libsharedmemory + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=31 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=6 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/runner/work/libsharedmemory/libsharedmemory +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.31 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//linker supports push/pop state +_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//linker supports push/pop state +_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//linker supports push/pop state +_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE + diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake new file mode 100644 index 0000000..b97b778 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake @@ -0,0 +1,81 @@ +set(CMAKE_C_COMPILER "/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "13.3.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_STANDARD_LATEST "23") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_C_COMPILER_LINKER_ID "GNU") +set(CMAKE_C_COMPILER_LINKER_VERSION 2.42) +set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) +set(CMAKE_C_LINKER_DEPFILE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..3d2e90a --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake @@ -0,0 +1,101 @@ +set(CMAKE_CXX_COMPILER "/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "13.3.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_STANDARD_LATEST "23") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") +set(CMAKE_CXX26_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_CXX_COMPILER_LINKER_ID "GNU") +set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.42) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang IN ITEMS C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") + +set(CMAKE_CXX_COMPILER_IMPORT_STD "") +### Imported target for C++23 standard library +set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") + + + diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..0e5f034156adf9d6d795b655cc52140f256663af GIT binary patch literal 15968 zcmeHOYit}>6~4Q9x#ZzZnh=w;&6YN8Lh;y19Fqo_tYfb;iyS8;8xW*nGV2}NBlcl- zXIr~K2nvr{AyufVLXnU{RRI!zQVEeC6~$Fh5r|iQP=XLr8mJURXkF1FQ_?Kw%st;` zJgi$(_<_V+%X{wm&iU@SbLP(Ootb+-n;sm9$6^X)f%<@AEtSwnN({;ONrgm8?NH0< z^Hz0>T1@&vAJg`f7G%}sVtlS_5qtqj=CyI9iM&O_6hRmCkR|ixD>I9<1yadzFwZxM z4jl3+2>=Pa5icnbLozEo$RLk%Gt;hlGd*)uPKPccrzIXF^2s^j z{~eOguL|Fm?yinPzP;dWd)_Sm*s?Ck%`Wlv|9JpV%5t*;;JxNrGu*^ayKy39V@Z|1NM7j6$jgmtcS zO!m?F_#D+_Y?Hj;{G#Xs^L#LGRTEnuVaX=AH4k2z2fvx{cQm-0#+;b|&f^DVHh{}lB21Bt zG7x1T%0QHXC<9Rjq6|bC_&?6TUt4c`-8^x%#XPy_w;f8EUzqmd^>l>dTZKQQWzw-4hf5}W;__#TB**x*bnf=-Hmgy}&F;DgUlp3h7 zsgmofBS!0n&-?8W{x~7#sYQ>lxOdiDL!m#+bqak`{Zi|OB6(|Mnb<&DYJT z8S~kfcA3x4E-+)ynHR2mtEqvF(m+f7lI|Dy+~4CpY*w{<4w)x<;#@VSUi6lkCwmr? za%FS9UcZv3kLMP>L3iD;BgAdQXa1iaAR|`}5pU`k+@$ANt{%E;diQBVh%iGdYuA8cLvK+AEpYu&x?*>09prk^aqF{AbgYNu`z0>0 zzjnP|X8o)zV#M0SF}~rWqSv%4by4i^(6D+)y?cF9i{Qgnb{iQtl&~?%EVsd)HeZ%fE>DJUgz8N{5zl)B3N%Q|bf%W14VT)Lo zx~H#iXL8e_T&?8Ql3TVJ+lD>AN~AP`anGx)WAwBD<5gRg`ZQHI zF0L2gJPu>(W`*$&{M%G%*8it{|Aa~2?m!CJt8lx56 z`)?P=fN0jAr7`xWt0pvVRuit&%Eo$pG;_D_|4xPL33w0T&DN2BjPN9!0`f5*U#nCq z08;gS!dI$-kHBC)C=;`2y=U zQ^EDTf-}cTM@vBm4)pHzpE_E!IiUZeL%n-5eFW1k3oC7k)$Bi@tUZJKcJ~fi`vwLM zrn6SIcQ-w(B*)O+g%q|Zyv4Qzzw3dgr^<5jwr49pN7O7UdeZ_ab9XRU`D)o3vrBp2 z-H_QwUU|1<)v8XO8Y$6-m8({TE88h(M+84u59%%-wX+I1b)w;hzoKcvPJ% zdUlSaSJ83|HMd0jF2GzB~=+T#)~v`1DD&|uJZhdF5$*g_V9i;%#RR&eS_r= zQg{wSm$hH!+t(%L#ykspH&ufC@cu4-9v&?Cz5~X;n?XK)w;_{o6dC4!gz&%790>i# zyblubG4I2?3(eY8;W;1pm={8x7Dw(Q=MH?#=Ul>gssTRcnUMT@9xUPff0B$m#{(bp zI!Mfy(SP_s9wR=_8KGm|2-zvY!~I8}PEmz(3O?qskkjIb_~GOKD%ts%U~l{`$nOK@ z@6wDP3w4&?p#LC0DLhC~8x-h}PlWiLVt|An8h{S@-4H(|2FQHqgn@_lo(l0XZ-B)8 z4gAC7_nh#Nf0YzZkq?UsAuv?+L#lBX!9Ohyko>MISijZ^eGdus?LjKM=Pyz{fm!ww*vK@YC829r(*+;IW7Jjd`b`8Pj}lRCxSz z0T1W#TZFL-_?U-Icd)loDgX1v2l$Y)WD4>dgig&t9JBx)^y^e%4Dm5PO9(&gFNXuV zT0j6};@-f)zo&ud3iv^Zu@iJnNrT^!j`4NOb7%Ai-+z3+g}w**SNKMW%H~kxh^wtU S7jDj9$v-SqmW2o*Rs9o9p%N7U literal 0 HcmV?d00001 diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..e90f3f71d98d8b48fdca37fdc4f6d991fd1db519 GIT binary patch literal 15992 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 lrm#WB={^$3kg!$RQ-Ee*hEc8gl>u literal 0 HcmV?d00001 diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake new file mode 100644 index 0000000..b2715a6 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.11.0-1018-azure") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.11.0-1018-azure") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.11.0-1018-azure") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.11.0-1018-azure") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..50d95e5 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,904 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define C_STD_99 199901L +#define C_STD_11 201112L +#define C_STD_17 201710L +#define C_STD_23 202311L + +#ifdef __STDC_VERSION__ +# define C_STD __STDC_VERSION__ +#endif + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif C_STD > C_STD_17 +# define C_VERSION "23" +#elif C_STD > C_STD_11 +# define C_VERSION "17" +#elif C_STD > C_STD_99 +# define C_VERSION "11" +#elif C_STD >= C_STD_99 +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..ecc315e71b4e62a6558ef29ebb804b7c2bdf9e59 GIT binary patch literal 16088 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 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define CXX_STD_98 199711L +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) +# if _MSVC_LANG > CXX_STD_17 +# define CXX_STD _MSVC_LANG +# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 +# define CXX_STD CXX_STD_17 +# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# elif defined(__INTEL_CXX11_MODE__) +# define CXX_STD CXX_STD_11 +# else +# define CXX_STD CXX_STD_98 +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__NVCOMPILER) +# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__INTEL_COMPILER) || defined(__PGI) +# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) +# define CXX_STD CXX_STD_17 +# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) +# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) +# define CXX_STD CXX_STD_11 +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..c8ced32cf082708045baa23211fbf858c298928d GIT binary patch literal 16096 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 ASpWb4 literal 0 HcmV?d00001 diff --git a/_codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml b/_codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000..37e5718 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,566 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake:205 (message)" + - "CMakeLists.txt:7 (project)" + message: | + The system is: Linux - 6.11.0-1018-azure - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:7 (project)" + message: | + Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. + Compiler: /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + + The C compiler identification is GNU, found in: + /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:7 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is GNU, found in: + /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out + + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + checks: + - "Detecting C compiler ABI info" + directories: + source: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq" + binary: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq" + cmakeVariables: + CMAKE_C_FLAGS: "" + CMAKE_C_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_C_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_c92d3/fast + /usr/bin/gmake -f CMakeFiles/cmTC_c92d3.dir/build.make CMakeFiles/cmTC_c92d3.dir/build + gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq' + Building C object CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o + /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc -v -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c + Using built-in specs. + COLLECT_GCC=/usr/bin/cc + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_c92d3.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccnFGRSV.s + GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: 38987c28e967c64056a6454abdef726e + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/' + as -v --64 -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o /tmp/ccnFGRSV.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.' + Linking C executable cmTC_c92d3 + /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c92d3.dir/link.txt --verbose=1 + Using built-in specs. + COLLECT_GCC=/usr/bin/cc + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c92d3' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c92d3.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + collect2 version 13.3.0 + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.42 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c92d3' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c92d3.' + /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc -v -Wl,-v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -o cmTC_c92d3 + gmake[1]: Leaving directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + message: | + Parsed C implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + message: | + Parsed C implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_c92d3/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_c92d3.dir/build.make CMakeFiles/cmTC_c92d3.dir/build] + ignore line: [gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq'] + ignore line: [Building C object CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o] + ignore line: [/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc -v -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_c92d3.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccnFGRSV.s] + ignore line: [GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: 38987c28e967c64056a6454abdef726e] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o /tmp/ccnFGRSV.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.'] + ignore line: [Linking C executable cmTC_c92d3] + ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c92d3.dir/link.txt --verbose=1] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c92d3' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c92d3.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccLgpDSl.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_c92d3] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 13.3.0] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'C': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + message: | + Running the C compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils for Ubuntu) 2.42 + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th" + binary: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th" + cmakeVariables: + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_CXX_SCAN_FOR_MODULES: "OFF" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_4463d/fast + /usr/bin/gmake -f CMakeFiles/cmTC_4463d.dir/build.make CMakeFiles/cmTC_4463d.dir/build + gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th' + Building CXX object CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o + /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -std=gnu++20 -v -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4463d.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++20 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccX3sT8y.s + GNU C++20 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/13 + /usr/include/x86_64-linux-gnu/c++/13 + /usr/include/c++/13/backward + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: c81c05345ce537099dafd5580045814a + COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/' + as -v --64 -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccX3sT8y.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_4463d + /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4463d.dir/link.txt --verbose=1 + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4463d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4463d.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + collect2 version 13.3.0 + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.42 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4463d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4463d.' + /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -v -Wl,-v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_4463d + gmake[1]: Leaving directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/13] + add: [/usr/include/x86_64-linux-gnu/c++/13] + add: [/usr/include/c++/13/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13] + collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_4463d/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_4463d.dir/build.make CMakeFiles/cmTC_4463d.dir/build] + ignore line: [gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th'] + ignore line: [Building CXX object CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -std=gnu++20 -v -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4463d.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++20 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccX3sT8y.s] + ignore line: [GNU C++20 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/13] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/13] + ignore line: [ /usr/include/c++/13/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: c81c05345ce537099dafd5580045814a] + ignore line: [COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccX3sT8y.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_4463d] + ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4463d.dir/link.txt --verbose=1] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4463d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4463d.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccRlv9KY.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_4463d] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 13.3.0] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'CXX': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:7 (project)" + message: | + Running the CXX compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils for Ubuntu) 2.42 +... diff --git a/_codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake b/_codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..0e5940d --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/runner/work/libsharedmemory/libsharedmemory") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/_codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt b/_codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt new file mode 100644 index 0000000..134d9b6 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt @@ -0,0 +1,2 @@ +# Hashes of file build rules. +339bb651ed893c6302918689e5a86d0c test/CMakeFiles/run_test diff --git a/_codeql_build_dir/CMakeFiles/Makefile.cmake b/_codeql_build_dir/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..ba79420 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/Makefile.cmake @@ -0,0 +1,144 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "/home/runner/work/libsharedmemory/libsharedmemory/CMakeLists.txt" + "CMakeFiles/3.31.6/CMakeCCompiler.cmake" + "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.6/CMakeSystem.cmake" + "/home/runner/work/libsharedmemory/libsharedmemory/test/CMakeLists.txt" + "/usr/local/share/cmake-3.31/Modules/CMakeCCompiler.cmake.in" + "/usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c" + "/usr/local/share/cmake-3.31/Modules/CMakeCInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeCXXCompiler.cmake.in" + "/usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp" + "/usr/local/share/cmake-3.31/Modules/CMakeCXXInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeCompilerIdDetection.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerSupport.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeFindBinUtils.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeGenericSystem.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeInitializeConfigs.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeLanguageInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeParseLibraryArchitecture.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeSystem.cmake.in" + "/usr/local/share/cmake-3.31/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeTestCompilerCommon.cmake" + "/usr/local/share/cmake-3.31/Modules/CMakeUnixFindMake.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/CrayClang-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-C.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-CXX.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-FindBinUtils.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/GNU.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/HP-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/LCC-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/OrangeC-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/TIClang-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Tasking-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/XL-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/local/share/cmake-3.31/Modules/Internal/CMakeCLinkerInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/Internal/CMakeCXXLinkerInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/Internal/CMakeCommonLinkerInformation.cmake" + "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake" + "/usr/local/share/cmake-3.31/Modules/Internal/FeatureTesting.cmake" + "/usr/local/share/cmake-3.31/Modules/Linker/GNU-C.cmake" + "/usr/local/share/cmake-3.31/Modules/Linker/GNU-CXX.cmake" + "/usr/local/share/cmake-3.31/Modules/Linker/GNU.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linker/GNU.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU-C.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU-CXX.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linux-Determine-CXX.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linux-GNU-C.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linux-GNU.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linux-Initialize.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/Linux.cmake" + "/usr/local/share/cmake-3.31/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.31.6/CMakeSystem.cmake" + "CMakeFiles/3.31.6/CMakeCCompiler.cmake" + "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" + "CMakeFiles/3.31.6/CMakeCCompiler.cmake" + "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + "test/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "test/CMakeFiles/lsm_test.dir/DependInfo.cmake" + "test/CMakeFiles/run_test.dir/DependInfo.cmake" + ) diff --git a/_codeql_build_dir/CMakeFiles/Makefile2 b/_codeql_build_dir/CMakeFiles/Makefile2 new file mode 100644 index 0000000..998dafd --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/Makefile2 @@ -0,0 +1,177 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/local/bin/cmake + +# The command to remove a file. +RM = /usr/local/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: test/all +.PHONY : all + +# The main recursive "codegen" target. +codegen: test/codegen +.PHONY : codegen + +# The main recursive "preinstall" target. +preinstall: test/preinstall +.PHONY : preinstall + +# The main recursive "clean" target. +clean: test/clean +.PHONY : clean + +#============================================================================= +# Directory level rules for directory test + +# Recursive "all" directory target. +test/all: test/CMakeFiles/lsm_test.dir/all +.PHONY : test/all + +# Recursive "codegen" directory target. +test/codegen: test/CMakeFiles/lsm_test.dir/codegen +.PHONY : test/codegen + +# Recursive "preinstall" directory target. +test/preinstall: +.PHONY : test/preinstall + +# Recursive "clean" directory target. +test/clean: test/CMakeFiles/lsm_test.dir/clean +test/clean: test/CMakeFiles/run_test.dir/clean +.PHONY : test/clean + +#============================================================================= +# Target rules for target test/CMakeFiles/lsm_test.dir + +# All Build rule for target. +test/CMakeFiles/lsm_test.dir/all: + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/depend + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=1,2 "Built target lsm_test" +.PHONY : test/CMakeFiles/lsm_test.dir/all + +# Build rule for subdir invocation for target. +test/CMakeFiles/lsm_test.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 2 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/lsm_test.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 +.PHONY : test/CMakeFiles/lsm_test.dir/rule + +# Convenience name for target. +lsm_test: test/CMakeFiles/lsm_test.dir/rule +.PHONY : lsm_test + +# codegen rule for target. +test/CMakeFiles/lsm_test.dir/codegen: + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/codegen + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=1,2 "Finished codegen for target lsm_test" +.PHONY : test/CMakeFiles/lsm_test.dir/codegen + +# clean rule for target. +test/CMakeFiles/lsm_test.dir/clean: + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/clean +.PHONY : test/CMakeFiles/lsm_test.dir/clean + +#============================================================================= +# Target rules for target test/CMakeFiles/run_test.dir + +# All Build rule for target. +test/CMakeFiles/run_test.dir/all: test/CMakeFiles/lsm_test.dir/all + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/depend + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num= "Built target run_test" +.PHONY : test/CMakeFiles/run_test.dir/all + +# Build rule for subdir invocation for target. +test/CMakeFiles/run_test.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 2 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/run_test.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 +.PHONY : test/CMakeFiles/run_test.dir/rule + +# Convenience name for target. +run_test: test/CMakeFiles/run_test.dir/rule +.PHONY : run_test + +# codegen rule for target. +test/CMakeFiles/run_test.dir/codegen: test/CMakeFiles/lsm_test.dir/all + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/codegen + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num= "Finished codegen for target run_test" +.PHONY : test/CMakeFiles/run_test.dir/codegen + +# clean rule for target. +test/CMakeFiles/run_test.dir/clean: + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/clean +.PHONY : test/CMakeFiles/run_test.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/_codeql_build_dir/CMakeFiles/TargetDirectories.txt b/_codeql_build_dir/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..df24a70 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,8 @@ +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/test.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/edit_cache.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/rebuild_cache.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/lsm_test.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/run_test.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/test.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/edit_cache.dir +/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/rebuild_cache.dir diff --git a/_codeql_build_dir/CMakeFiles/cmake.check_cache b/_codeql_build_dir/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/_codeql_build_dir/CMakeFiles/progress.marks b/_codeql_build_dir/CMakeFiles/progress.marks new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/_codeql_build_dir/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/_codeql_build_dir/CTestTestfile.cmake b/_codeql_build_dir/CTestTestfile.cmake new file mode 100644 index 0000000..353ca5b --- /dev/null +++ b/_codeql_build_dir/CTestTestfile.cmake @@ -0,0 +1,7 @@ +# CMake generated Testfile for +# Source directory: /home/runner/work/libsharedmemory/libsharedmemory +# Build directory: /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +subdirs("test") diff --git a/_codeql_build_dir/Makefile b/_codeql_build_dir/Makefile new file mode 100644 index 0000000..dc737bf --- /dev/null +++ b/_codeql_build_dir/Makefile @@ -0,0 +1,182 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/local/bin/cmake + +# The command to remove a file. +RM = /usr/local/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." + /usr/local/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named lsm_test + +# Build rule for target. +lsm_test: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 lsm_test +.PHONY : lsm_test + +# fast build rule for target. +lsm_test/fast: + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/build +.PHONY : lsm_test/fast + +#============================================================================= +# Target rules for targets named run_test + +# Build rule for target. +run_test: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 run_test +.PHONY : run_test + +# fast build rule for target. +run_test/fast: + $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/build +.PHONY : run_test/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... test" + @echo "... run_test" + @echo "... lsm_test" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/_codeql_build_dir/cmake_install.cmake b/_codeql_build_dir/cmake_install.cmake new file mode 100644 index 0000000..0be7dd5 --- /dev/null +++ b/_codeql_build_dir/cmake_install.cmake @@ -0,0 +1,72 @@ +# Install script for directory: /home/runner/work/libsharedmemory/libsharedmemory + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set path to fallback-tool for dependency-resolution. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for each subdirectory. + include("/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/cmake_install.cmake") + +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +if(CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/install_local_manifest.txt" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() +if(CMAKE_INSTALL_COMPONENT) + if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") + else() + string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") + unset(CMAKE_INST_COMP_HASH) + endif() +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/_codeql_build_dir/compile_commands.json b/_codeql_build_dir/compile_commands.json new file mode 100644 index 0000000..0c04cc1 --- /dev/null +++ b/_codeql_build_dir/compile_commands.json @@ -0,0 +1,8 @@ +[ +{ + "directory": "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test", + "command": "/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -I/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test -I/home/runner/work/libsharedmemory/libsharedmemory/test -I/home/runner/work/libsharedmemory/libsharedmemory/include -O3 -DNDEBUG -std=gnu++20 -Wall -Wno-missing-braces -std=c++20 -fPIC -o CMakeFiles/lsm_test.dir/test.cc.o -c /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc", + "file": "/home/runner/work/libsharedmemory/libsharedmemory/test/test.cc", + "output": "test/CMakeFiles/lsm_test.dir/test.cc.o" +} +] \ No newline at end of file diff --git a/_codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake b/_codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..0e5940d --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/runner/work/libsharedmemory/libsharedmemory") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake new file mode 100644 index 0000000..6cde508 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/runner/work/libsharedmemory/libsharedmemory/test/test.cc" "test/CMakeFiles/lsm_test.dir/test.cc.o" "gcc" "test/CMakeFiles/lsm_test.dir/test.cc.o.d" + "" "test/lsm_test" "gcc" "test/CMakeFiles/lsm_test.dir/link.d" + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make new file mode 100644 index 0000000..3c6ade3 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make @@ -0,0 +1,117 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/local/bin/cmake + +# The command to remove a file. +RM = /usr/local/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir + +# Include any dependencies generated for this target. +include test/CMakeFiles/lsm_test.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include test/CMakeFiles/lsm_test.dir/compiler_depend.make + +# Include the progress variables for this target. +include test/CMakeFiles/lsm_test.dir/progress.make + +# Include the compile flags for this target's objects. +include test/CMakeFiles/lsm_test.dir/flags.make + +test/CMakeFiles/lsm_test.dir/codegen: +.PHONY : test/CMakeFiles/lsm_test.dir/codegen + +test/CMakeFiles/lsm_test.dir/test.cc.o: test/CMakeFiles/lsm_test.dir/flags.make +test/CMakeFiles/lsm_test.dir/test.cc.o: /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc +test/CMakeFiles/lsm_test.dir/test.cc.o: test/CMakeFiles/lsm_test.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object test/CMakeFiles/lsm_test.dir/test.cc.o" + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT test/CMakeFiles/lsm_test.dir/test.cc.o -MF CMakeFiles/lsm_test.dir/test.cc.o.d -o CMakeFiles/lsm_test.dir/test.cc.o -c /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc + +test/CMakeFiles/lsm_test.dir/test.cc.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/lsm_test.dir/test.cc.i" + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc > CMakeFiles/lsm_test.dir/test.cc.i + +test/CMakeFiles/lsm_test.dir/test.cc.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/lsm_test.dir/test.cc.s" + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc -o CMakeFiles/lsm_test.dir/test.cc.s + +# Object files for target lsm_test +lsm_test_OBJECTS = \ +"CMakeFiles/lsm_test.dir/test.cc.o" + +# External object files for target lsm_test +lsm_test_EXTERNAL_OBJECTS = + +test/lsm_test: test/CMakeFiles/lsm_test.dir/test.cc.o +test/lsm_test: test/CMakeFiles/lsm_test.dir/build.make +test/lsm_test: test/CMakeFiles/lsm_test.dir/compiler_depend.ts +test/lsm_test: test/CMakeFiles/lsm_test.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable lsm_test" + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/lsm_test.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +test/CMakeFiles/lsm_test.dir/build: test/lsm_test +.PHONY : test/CMakeFiles/lsm_test.dir/build + +test/CMakeFiles/lsm_test.dir/clean: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && $(CMAKE_COMMAND) -P CMakeFiles/lsm_test.dir/cmake_clean.cmake +.PHONY : test/CMakeFiles/lsm_test.dir/clean + +test/CMakeFiles/lsm_test.dir/depend: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/runner/work/libsharedmemory/libsharedmemory /home/runner/work/libsharedmemory/libsharedmemory/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : test/CMakeFiles/lsm_test.dir/depend + diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake new file mode 100644 index 0000000..064f525 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake @@ -0,0 +1,12 @@ +file(REMOVE_RECURSE + "CMakeFiles/lsm_test.dir/link.d" + "CMakeFiles/lsm_test.dir/test.cc.o" + "CMakeFiles/lsm_test.dir/test.cc.o.d" + "lsm_test" + "lsm_test.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/lsm_test.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make new file mode 100644 index 0000000..a0a0418 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for lsm_test. +# This may be replaced when dependencies are built. diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts new file mode 100644 index 0000000..f143ba3 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for lsm_test. diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make new file mode 100644 index 0000000..1041520 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for lsm_test. +# This may be replaced when dependencies are built. diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make new file mode 100644 index 0000000..b7128ea --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# compile CXX with /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ +CXX_DEFINES = + +CXX_INCLUDES = -I/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test -I/home/runner/work/libsharedmemory/libsharedmemory/test -I/home/runner/work/libsharedmemory/libsharedmemory/include + +CXX_FLAGS = -O3 -DNDEBUG -std=gnu++20 -Wall -Wno-missing-braces -std=c++20 -fPIC + diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d new file mode 100644 index 0000000..c3502e6 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d @@ -0,0 +1,97 @@ +lsm_test: \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o \ + /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o \ + CMakeFiles/lsm_test.dir/test.cc.o \ + /usr/lib/gcc/x86_64-linux-gnu/13/libstdc++.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so \ + /lib/x86_64-linux-gnu/libm.so.6 \ + /lib/x86_64-linux-gnu/libmvec.so.1 \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1 \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so \ + /lib/x86_64-linux-gnu/libc.so.6 \ + /usr/lib/x86_64-linux-gnu/libc_nonshared.a \ + /lib64/ld-linux-x86-64.so.2 \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1 \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ + /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o \ + /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o \ + /lib/x86_64-linux-gnu/libm.so.6 \ + /lib64/ld-linux-x86-64.so.2 + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o: + +/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o: + +CMakeFiles/lsm_test.dir/test.cc.o: + +/usr/lib/gcc/x86_64-linux-gnu/13/libstdc++.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so: + +/lib/x86_64-linux-gnu/libm.so.6: + +/lib/x86_64-linux-gnu/libmvec.so.1: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so: + +/lib/x86_64-linux-gnu/libc.so.6: + +/usr/lib/x86_64-linux-gnu/libc_nonshared.a: + +/lib64/ld-linux-x86-64.so.2: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: + +/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o: + +/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o: + +/lib/x86_64-linux-gnu/libm.so.6: + +/lib64/ld-linux-x86-64.so.2: diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt new file mode 100644 index 0000000..bfd3870 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt @@ -0,0 +1 @@ +/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -O3 -DNDEBUG -Wl,--dependency-file=CMakeFiles/lsm_test.dir/link.d CMakeFiles/lsm_test.dir/test.cc.o -o lsm_test diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o new file mode 100644 index 0000000000000000000000000000000000000000..68812195f22a5499e4d89fcab8a84da392aad147 GIT binary patch literal 339680 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 literal 0 HcmV?d00001 diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d new file mode 100644 index 0000000..7089edf --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d @@ -0,0 +1,269 @@ +test/CMakeFiles/lsm_test.dir/test.cc.o: \ + /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc \ + /usr/include/stdc-predef.h \ + /home/runner/work/libsharedmemory/libsharedmemory/include/libsharedmemory/libsharedmemory.hpp \ + /usr/include/c++/13/ostream /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ + /usr/include/c++/13/pstl/pstl_config.h /usr/include/c++/13/ios \ + /usr/include/c++/13/iosfwd /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h /usr/include/c++/13/bits/postypes.h \ + /usr/include/c++/13/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/13/exception /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/new /usr/include/c++/13/bits/move.h \ + /usr/include/c++/13/type_traits \ + /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/char_traits.h /usr/include/c++/13/compare \ + /usr/include/c++/13/concepts /usr/include/c++/13/bits/stl_construct.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/iterator_concepts.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/ranges_cmp.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/13/bits/ios_base.h /usr/include/c++/13/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/13/bits/locale_classes.h /usr/include/c++/13/string \ + /usr/include/c++/13/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/ext/type_traits.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/ranges_base.h \ + /usr/include/c++/13/bits/max_size_type.h /usr/include/c++/13/numbers \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/select-decl.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/bits/ranges_util.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc \ + /usr/include/c++/13/bits/ostream.tcc /usr/include/c++/13/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/13/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ + /usr/include/c++/13/limits /usr/include/c++/13/span \ + /usr/include/c++/13/array /usr/include/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/linux/falloc.h /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h \ + /usr/include/x86_64-linux-gnu/sys/mman.h \ + /usr/include/x86_64-linux-gnu/bits/mman.h \ + /usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h \ + /usr/include/x86_64-linux-gnu/bits/mman-linux.h \ + /usr/include/x86_64-linux-gnu/bits/mman-shared.h \ + /usr/include/x86_64-linux-gnu/bits/mman_ext.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /home/runner/work/libsharedmemory/libsharedmemory/test/lest.hpp \ + /usr/include/c++/13/algorithm /usr/include/c++/13/bits/stl_algo.h \ + /usr/include/c++/13/bits/algorithmfwd.h \ + /usr/include/c++/13/bits/stl_heap.h \ + /usr/include/c++/13/bits/uniform_int_dist.h \ + /usr/include/c++/13/bits/stl_tempbuf.h \ + /usr/include/c++/13/bits/ranges_algo.h \ + /usr/include/c++/13/bits/ranges_algobase.h \ + /usr/include/c++/13/pstl/glue_algorithm_defs.h \ + /usr/include/c++/13/pstl/execution_defs.h /usr/include/c++/13/chrono \ + /usr/include/c++/13/bits/chrono.h /usr/include/c++/13/ratio \ + /usr/include/c++/13/ctime /usr/include/c++/13/bits/parse_numbers.h \ + /usr/include/c++/13/sstream /usr/include/c++/13/istream \ + /usr/include/c++/13/bits/istream.tcc \ + /usr/include/c++/13/bits/sstream.tcc /usr/include/c++/13/vector \ + /usr/include/c++/13/bits/stl_uninitialized.h \ + /usr/include/c++/13/bits/stl_vector.h \ + /usr/include/c++/13/bits/stl_bvector.h \ + /usr/include/c++/13/bits/vector.tcc \ + /usr/include/c++/13/bits/shared_ptr.h \ + /usr/include/c++/13/bits/shared_ptr_base.h \ + /usr/include/c++/13/bits/allocated_ptr.h \ + /usr/include/c++/13/bits/unique_ptr.h \ + /usr/include/c++/13/ext/aligned_buffer.h \ + /usr/include/c++/13/ext/concurrence.h /usr/include/c++/13/bits/align.h \ + /usr/include/c++/13/bits/chrono_io.h /usr/include/c++/13/iomanip \ + /usr/include/c++/13/locale \ + /usr/include/c++/13/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/13/bits/codecvt.h \ + /usr/include/c++/13/bits/locale_facets_nonio.tcc \ + /usr/include/c++/13/bits/locale_conv.h \ + /usr/include/c++/13/bits/quoted_string.h /usr/include/c++/13/format \ + /usr/include/c++/13/charconv /usr/include/c++/13/optional \ + /usr/include/c++/13/bits/enable_special_members.h \ + /usr/include/c++/13/variant /usr/include/c++/13/functional \ + /usr/include/c++/13/bits/std_function.h \ + /usr/include/c++/13/unordered_map \ + /usr/include/c++/13/bits/unordered_map.h \ + /usr/include/c++/13/bits/hashtable.h \ + /usr/include/c++/13/bits/hashtable_policy.h \ + /usr/include/c++/13/bits/node_handle.h \ + /usr/include/c++/13/bits/erase_if.h /usr/include/c++/13/iostream \ + /usr/include/c++/13/iterator /usr/include/c++/13/bits/stream_iterator.h \ + /usr/include/c++/13/random /usr/include/c++/13/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/13/bits/specfun.h /usr/include/c++/13/tr1/gamma.tcc \ + /usr/include/c++/13/tr1/special_function_util.h \ + /usr/include/c++/13/tr1/bessel_function.tcc \ + /usr/include/c++/13/tr1/beta_function.tcc \ + /usr/include/c++/13/tr1/ell_integral.tcc \ + /usr/include/c++/13/tr1/exp_integral.tcc \ + /usr/include/c++/13/tr1/hypergeometric.tcc \ + /usr/include/c++/13/tr1/legendre_function.tcc \ + /usr/include/c++/13/tr1/modified_bessel_func.tcc \ + /usr/include/c++/13/tr1/poly_hermite.tcc \ + /usr/include/c++/13/tr1/poly_laguerre.tcc \ + /usr/include/c++/13/tr1/riemann_zeta.tcc \ + /usr/include/c++/13/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/13/bits/opt_random.h \ + /usr/include/c++/13/bits/random.tcc /usr/include/c++/13/numeric \ + /usr/include/c++/13/bits/stl_numeric.h \ + /usr/include/c++/13/pstl/glue_numeric_defs.h /usr/include/c++/13/set \ + /usr/include/c++/13/bits/stl_tree.h /usr/include/c++/13/bits/stl_set.h \ + /usr/include/c++/13/bits/stl_multiset.h /usr/include/c++/13/utility \ + /usr/include/c++/13/bits/stl_relops.h /usr/include/c++/13/bitset diff --git a/_codeql_build_dir/test/CMakeFiles/progress.marks b/_codeql_build_dir/test/CMakeFiles/progress.marks new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake b/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake new file mode 100644 index 0000000..29b95a5 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake @@ -0,0 +1,22 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES + ) + +# Targets to which this target links which contain Fortran sources. +set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/build.make b/_codeql_build_dir/test/CMakeFiles/run_test.dir/build.make new file mode 100644 index 0000000..b0a005e --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/run_test.dir/build.make @@ -0,0 +1,93 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/local/bin/cmake + +# The command to remove a file. +RM = /usr/local/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir + +# Utility rule file for run_test. + +# Include any custom commands dependencies for this target. +include test/CMakeFiles/run_test.dir/compiler_depend.make + +# Include the progress variables for this target. +include test/CMakeFiles/run_test.dir/progress.make + +test/CMakeFiles/run_test: test/lsm_test + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && ./lsm_test + +test/CMakeFiles/run_test.dir/codegen: +.PHONY : test/CMakeFiles/run_test.dir/codegen + +run_test: test/CMakeFiles/run_test +run_test: test/CMakeFiles/run_test.dir/build.make +.PHONY : run_test + +# Rule to build all files generated by this target. +test/CMakeFiles/run_test.dir/build: run_test +.PHONY : test/CMakeFiles/run_test.dir/build + +test/CMakeFiles/run_test.dir/clean: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && $(CMAKE_COMMAND) -P CMakeFiles/run_test.dir/cmake_clean.cmake +.PHONY : test/CMakeFiles/run_test.dir/clean + +test/CMakeFiles/run_test.dir/depend: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/runner/work/libsharedmemory/libsharedmemory /home/runner/work/libsharedmemory/libsharedmemory/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake "--color=$(COLOR)" +.PHONY : test/CMakeFiles/run_test.dir/depend + diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake b/_codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake new file mode 100644 index 0000000..6de7931 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/run_test" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/run_test.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make b/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make new file mode 100644 index 0000000..bade415 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for run_test. +# This may be replaced when dependencies are built. diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts b/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts new file mode 100644 index 0000000..91eafbe --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for run_test. diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make b/_codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/_codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make @@ -0,0 +1 @@ + diff --git a/_codeql_build_dir/test/CTestTestfile.cmake b/_codeql_build_dir/test/CTestTestfile.cmake new file mode 100644 index 0000000..5a88777 --- /dev/null +++ b/_codeql_build_dir/test/CTestTestfile.cmake @@ -0,0 +1,8 @@ +# CMake generated Testfile for +# Source directory: /home/runner/work/libsharedmemory/libsharedmemory/test +# Build directory: /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(test "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/lsm_test") +set_tests_properties(test PROPERTIES _BACKTRACE_TRIPLES "/home/runner/work/libsharedmemory/libsharedmemory/test/CMakeLists.txt;13;add_test;/home/runner/work/libsharedmemory/libsharedmemory/test/CMakeLists.txt;0;") diff --git a/_codeql_build_dir/test/Makefile b/_codeql_build_dir/test/Makefile new file mode 100644 index 0000000..0518e5b --- /dev/null +++ b/_codeql_build_dir/test/Makefile @@ -0,0 +1,211 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.31 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Produce verbose output by default. +VERBOSE = 1 + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/local/bin/cmake + +# The command to remove a file. +RM = /usr/local/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." + /usr/local/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." + /usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." + /usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test//CMakeFiles/progress.marks + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +test/CMakeFiles/lsm_test.dir/rule: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/lsm_test.dir/rule +.PHONY : test/CMakeFiles/lsm_test.dir/rule + +# Convenience name for target. +lsm_test: test/CMakeFiles/lsm_test.dir/rule +.PHONY : lsm_test + +# fast build rule for target. +lsm_test/fast: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/build +.PHONY : lsm_test/fast + +# Convenience name for target. +test/CMakeFiles/run_test.dir/rule: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/run_test.dir/rule +.PHONY : test/CMakeFiles/run_test.dir/rule + +# Convenience name for target. +run_test: test/CMakeFiles/run_test.dir/rule +.PHONY : run_test + +# fast build rule for target. +run_test/fast: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/build +.PHONY : run_test/fast + +test.o: test.cc.o +.PHONY : test.o + +# target to build an object file +test.cc.o: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/test.cc.o +.PHONY : test.cc.o + +test.i: test.cc.i +.PHONY : test.i + +# target to preprocess a source file +test.cc.i: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/test.cc.i +.PHONY : test.cc.i + +test.s: test.cc.s +.PHONY : test.s + +# target to generate assembly for a file +test.cc.s: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/test.cc.s +.PHONY : test.cc.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... test" + @echo "... run_test" + @echo "... lsm_test" + @echo "... test.o" + @echo "... test.i" + @echo "... test.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/_codeql_build_dir/test/cmake_install.cmake b/_codeql_build_dir/test/cmake_install.cmake new file mode 100644 index 0000000..09a3a74 --- /dev/null +++ b/_codeql_build_dir/test/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/runner/work/libsharedmemory/libsharedmemory/test + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set path to fallback-tool for dependency-resolution. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +if(CMAKE_INSTALL_LOCAL_ONLY) + file(WRITE "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/install_local_manifest.txt" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") +endif() diff --git a/_codeql_build_dir/test/lsm_test b/_codeql_build_dir/test/lsm_test new file mode 100755 index 0000000000000000000000000000000000000000..7c5499225e6ba0238e842a47ebf77ea904347e44 GIT binary patch literal 198160 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
!I|XKKs5wJ`E(|| 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 Date: Tue, 4 Nov 2025 07:33:09 +0100 Subject: [PATCH 25/41] Update libsharedmemory.hpp --- include/libsharedmemory/libsharedmemory.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index ed06f11..0ab0dab 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 2 +#define LIBSHAREDMEMORY_VERSION_MINOR 3 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -628,4 +628,4 @@ class SharedMemoryWriteStream Memory _memory; }; -}; // namespace lsm \ No newline at end of file +}; // namespace lsm From 40dc97649fc7bb8e2ec4941950d79f36f0ed7fb3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 06:33:26 +0000 Subject: [PATCH 26/41] Update .gitignore to exclude CodeQL build artifacts Co-authored-by: draugvar <12036000+draugvar@users.noreply.github.com> --- .gitignore | 4 +- _codeql_build_dir/CMakeCache.txt | 392 -------- .../CMakeFiles/3.31.6/CMakeCCompiler.cmake | 81 -- .../CMakeFiles/3.31.6/CMakeCXXCompiler.cmake | 101 -- .../3.31.6/CMakeDetermineCompilerABI_C.bin | Bin 15968 -> 0 bytes .../3.31.6/CMakeDetermineCompilerABI_CXX.bin | Bin 15992 -> 0 bytes .../CMakeFiles/3.31.6/CMakeSystem.cmake | 15 - .../3.31.6/CompilerIdC/CMakeCCompilerId.c | 904 ----------------- .../CMakeFiles/3.31.6/CompilerIdC/a.out | Bin 16088 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 ------------------ .../CMakeFiles/3.31.6/CompilerIdCXX/a.out | Bin 16096 -> 0 bytes .../CMakeFiles/CMakeConfigureLog.yaml | 566 ----------- .../CMakeDirectoryInformation.cmake | 16 - .../CMakeFiles/CMakeRuleHashes.txt | 2 - _codeql_build_dir/CMakeFiles/Makefile.cmake | 144 --- _codeql_build_dir/CMakeFiles/Makefile2 | 177 ---- .../CMakeFiles/TargetDirectories.txt | 8 - .../CMakeFiles/cmake.check_cache | 1 - _codeql_build_dir/CMakeFiles/progress.marks | 1 - _codeql_build_dir/CTestTestfile.cmake | 7 - _codeql_build_dir/Makefile | 182 ---- _codeql_build_dir/cmake_install.cmake | 72 -- _codeql_build_dir/compile_commands.json | 8 - .../CMakeDirectoryInformation.cmake | 16 - .../CMakeFiles/lsm_test.dir/DependInfo.cmake | 24 - .../test/CMakeFiles/lsm_test.dir/build.make | 117 --- .../CMakeFiles/lsm_test.dir/cmake_clean.cmake | 12 - .../lsm_test.dir/compiler_depend.make | 2 - .../lsm_test.dir/compiler_depend.ts | 2 - .../test/CMakeFiles/lsm_test.dir/depend.make | 2 - .../test/CMakeFiles/lsm_test.dir/flags.make | 10 - .../test/CMakeFiles/lsm_test.dir/link.d | 97 -- .../test/CMakeFiles/lsm_test.dir/link.txt | 1 - .../CMakeFiles/lsm_test.dir/progress.make | 3 - .../test/CMakeFiles/lsm_test.dir/test.cc.o | Bin 339680 -> 0 bytes .../test/CMakeFiles/lsm_test.dir/test.cc.o.d | 269 ----- .../test/CMakeFiles/progress.marks | 1 - .../CMakeFiles/run_test.dir/DependInfo.cmake | 22 - .../test/CMakeFiles/run_test.dir/build.make | 93 -- .../CMakeFiles/run_test.dir/cmake_clean.cmake | 8 - .../run_test.dir/compiler_depend.make | 2 - .../run_test.dir/compiler_depend.ts | 2 - .../CMakeFiles/run_test.dir/progress.make | 1 - _codeql_build_dir/test/CTestTestfile.cmake | 8 - _codeql_build_dir/test/Makefile | 211 ---- _codeql_build_dir/test/cmake_install.cmake | 50 - _codeql_build_dir/test/lsm_test | Bin 198160 -> 0 bytes _codeql_detected_source_root | 1 - 48 files changed, 3 insertions(+), 4551 deletions(-) delete mode 100644 _codeql_build_dir/CMakeCache.txt delete mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake delete mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake delete mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin delete mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake delete mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c delete mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out delete mode 100644 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100755 _codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out delete mode 100644 _codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml delete mode 100644 _codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 _codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt delete mode 100644 _codeql_build_dir/CMakeFiles/Makefile.cmake delete mode 100644 _codeql_build_dir/CMakeFiles/Makefile2 delete mode 100644 _codeql_build_dir/CMakeFiles/TargetDirectories.txt delete mode 100644 _codeql_build_dir/CMakeFiles/cmake.check_cache delete mode 100644 _codeql_build_dir/CMakeFiles/progress.marks delete mode 100644 _codeql_build_dir/CTestTestfile.cmake delete mode 100644 _codeql_build_dir/Makefile delete mode 100644 _codeql_build_dir/cmake_install.cmake delete mode 100644 _codeql_build_dir/compile_commands.json delete mode 100644 _codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o delete mode 100644 _codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d delete mode 100644 _codeql_build_dir/test/CMakeFiles/progress.marks delete mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake delete mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/build.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake delete mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make delete mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts delete mode 100644 _codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make delete mode 100644 _codeql_build_dir/test/CTestTestfile.cmake delete mode 100644 _codeql_build_dir/test/Makefile delete mode 100644 _codeql_build_dir/test/cmake_install.cmake delete mode 100755 _codeql_build_dir/test/lsm_test delete mode 120000 _codeql_detected_source_root diff --git a/.gitignore b/.gitignore index 71bf609..afb5054 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ .vscode build .idea -cmake-build-* \ No newline at end of file +cmake-build-* +_codeql_build_dir +_codeql_detected_source_root \ No newline at end of file diff --git a/_codeql_build_dir/CMakeCache.txt b/_codeql_build_dir/CMakeCache.txt deleted file mode 100644 index bbf8580..0000000 --- a/_codeql_build_dir/CMakeCache.txt +++ /dev/null @@ -1,392 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir -# It was generated by CMake: /usr/local/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -BUILD_DOCS:UNINITIALIZED=OFF - -//No help, variable specified on the command line. -BUILD_DOCUMENTATION:UNINITIALIZED=OFF - -//No help, variable specified on the command line. -CATKIN_ENABLE_TESTING:UNINITIALIZED=OFF - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line - -//Path to a program. -CMAKE_AR:FILEPATH=/usr/bin/ar - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING=Release - -//Enable/Disable color output during build. -CMAKE_COLOR_MAKEFILE:BOOL=ON - -//CXX compiler -CMAKE_CXX_COMPILER:FILEPATH=/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=-g - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//C compiler -CMAKE_C_COMPILER:FILEPATH=/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=-g - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Value Computed by CMake. -CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/pkgRedirects - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//Path to a program. -CMAKE_LINKER:FILEPATH=/usr/bin/ld - -//Path to a program. -CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/usr/bin/nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=LSM - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/usr/bin/readelf - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_STRIP:FILEPATH=/usr/bin/strip - -//Path to a program. -CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=ON - -//Value Computed by CMake -LSM_BINARY_DIR:STATIC=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir - -//build test -LSM_BUILD_TEST:BOOL=ON - -//Value Computed by CMake -LSM_IS_TOP_LEVEL:STATIC=ON - -//Value Computed by CMake -LSM_SOURCE_DIR:STATIC=/home/runner/work/libsharedmemory/libsharedmemory - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=31 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=6 -//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE -CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER -CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/bin/ccmake -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Unix Makefiles -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/home/runner/work/libsharedmemory/libsharedmemory -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MAKE_PROGRAM -CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.31 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_TAPI -CMAKE_TAPI-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//linker supports push/pop state -_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE -//linker supports push/pop state -_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE -//linker supports push/pop state -_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE - diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake deleted file mode 100644 index b97b778..0000000 --- a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCCompiler.cmake +++ /dev/null @@ -1,81 +0,0 @@ -set(CMAKE_C_COMPILER "/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "GNU") -set(CMAKE_C_COMPILER_VERSION "13.3.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_STANDARD_LATEST "23") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-13") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_LINKER_LINK "") -set(CMAKE_LINKER_LLD "") -set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld") -set(CMAKE_C_COMPILER_LINKER_ID "GNU") -set(CMAKE_C_COMPILER_LINKER_VERSION 2.42) -set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU) -set(CMAKE_MT "") -set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC 1) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) -set(CMAKE_C_LINKER_DEPFILE_SUPPORTED ) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake deleted file mode 100644 index 3d2e90a..0000000 --- a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,101 +0,0 @@ -set(CMAKE_CXX_COMPILER "/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "GNU") -set(CMAKE_CXX_COMPILER_VERSION "13.3.0") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_CXX_STANDARD_LATEST "23") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") -set(CMAKE_CXX26_COMPILE_FEATURES "") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_LINKER_LINK "") -set(CMAKE_LINKER_LLD "") -set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld") -set(CMAKE_CXX_COMPILER_LINKER_ID "GNU") -set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.42) -set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) -set(CMAKE_MT "") -set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCXX 1) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang IN ITEMS C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) -set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") -set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") - -set(CMAKE_CXX_COMPILER_IMPORT_STD "") -### Imported target for C++23 standard library -set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") - - - diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index 0e5f034156adf9d6d795b655cc52140f256663af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15968 zcmeHOYit}>6~4Q9x#ZzZnh=w;&6YN8Lh;y19Fqo_tYfb;iyS8;8xW*nGV2}NBlcl- zXIr~K2nvr{AyufVLXnU{RRI!zQVEeC6~$Fh5r|iQP=XLr8mJURXkF1FQ_?Kw%st;` zJgi$(_<_V+%X{wm&iU@SbLP(Ootb+-n;sm9$6^X)f%<@AEtSwnN({;ONrgm8?NH0< z^Hz0>T1@&vAJg`f7G%}sVtlS_5qtqj=CyI9iM&O_6hRmCkR|ixD>I9<1yadzFwZxM z4jl3+2>=Pa5icnbLozEo$RLk%Gt;hlGd*)uPKPccrzIXF^2s^j z{~eOguL|Fm?yinPzP;dWd)_Sm*s?Ck%`Wlv|9JpV%5t*;;JxNrGu*^ayKy39V@Z|1NM7j6$jgmtcS zO!m?F_#D+_Y?Hj;{G#Xs^L#LGRTEnuVaX=AH4k2z2fvx{cQm-0#+;b|&f^DVHh{}lB21Bt zG7x1T%0QHXC<9Rjq6|bC_&?6TUt4c`-8^x%#XPy_w;f8EUzqmd^>l>dTZKQQWzw-4hf5}W;__#TB**x*bnf=-Hmgy}&F;DgUlp3h7 zsgmofBS!0n&-?8W{x~7#sYQ>lxOdiDL!m#+bqak`{Zi|OB6(|Mnb<&DYJT z8S~kfcA3x4E-+)ynHR2mtEqvF(m+f7lI|Dy+~4CpY*w{<4w)x<;#@VSUi6lkCwmr? za%FS9UcZv3kLMP>L3iD;BgAdQXa1iaAR|`}5pU`k+@$ANt{%E;diQBVh%iGdYuA8cLvK+AEpYu&x?*>09prk^aqF{AbgYNu`z0>0 zzjnP|X8o)zV#M0SF}~rWqSv%4by4i^(6D+)y?cF9i{Qgnb{iQtl&~?%EVsd)HeZ%fE>DJUgz8N{5zl)B3N%Q|bf%W14VT)Lo zx~H#iXL8e_T&?8Ql3TVJ+lD>AN~AP`anGx)WAwBD<5gRg`ZQHI zF0L2gJPu>(W`*$&{M%G%*8it{|Aa~2?m!CJt8lx56 z`)?P=fN0jAr7`xWt0pvVRuit&%Eo$pG;_D_|4xPL33w0T&DN2BjPN9!0`f5*U#nCq z08;gS!dI$-kHBC)C=;`2y=U zQ^EDTf-}cTM@vBm4)pHzpE_E!IiUZeL%n-5eFW1k3oC7k)$Bi@tUZJKcJ~fi`vwLM zrn6SIcQ-w(B*)O+g%q|Zyv4Qzzw3dgr^<5jwr49pN7O7UdeZ_ab9XRU`D)o3vrBp2 z-H_QwUU|1<)v8XO8Y$6-m8({TE88h(M+84u59%%-wX+I1b)w;hzoKcvPJ% zdUlSaSJ83|HMd0jF2GzB~=+T#)~v`1DD&|uJZhdF5$*g_V9i;%#RR&eS_r= zQg{wSm$hH!+t(%L#ykspH&ufC@cu4-9v&?Cz5~X;n?XK)w;_{o6dC4!gz&%790>i# zyblubG4I2?3(eY8;W;1pm={8x7Dw(Q=MH?#=Ul>gssTRcnUMT@9xUPff0B$m#{(bp zI!Mfy(SP_s9wR=_8KGm|2-zvY!~I8}PEmz(3O?qskkjIb_~GOKD%ts%U~l{`$nOK@ z@6wDP3w4&?p#LC0DLhC~8x-h}PlWiLVt|An8h{S@-4H(|2FQHqgn@_lo(l0XZ-B)8 z4gAC7_nh#Nf0YzZkq?UsAuv?+L#lBX!9Ohyko>MISijZ^eGdus?LjKM=Pyz{fm!ww*vK@YC829r(*+;IW7Jjd`b`8Pj}lRCxSz z0T1W#TZFL-_?U-Icd)loDgX1v2l$Y)WD4>dgig&t9JBx)^y^e%4Dm5PO9(&gFNXuV zT0j6};@-f)zo&ud3iv^Zu@iJnNrT^!j`4NOb7%Ai-+z3+g}w**SNKMW%H~kxh^wtU S7jDj9$v-SqmW2o*Rs9o9p%N7U diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index e90f3f71d98d8b48fdca37fdc4f6d991fd1db519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15992 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 lrm#WB={^$3kg!$RQ-Ee*hEc8gl>u diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake b/_codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake deleted file mode 100644 index b2715a6..0000000 --- a/_codeql_build_dir/CMakeFiles/3.31.6/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-6.11.0-1018-azure") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "6.11.0-1018-azure") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - - - -set(CMAKE_SYSTEM "Linux-6.11.0-1018-azure") -set(CMAKE_SYSTEM_NAME "Linux") -set(CMAKE_SYSTEM_VERSION "6.11.0-1018-azure") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 50d95e5..0000000 --- a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,904 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "ARM" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define C_STD_99 199901L -#define C_STD_11 201112L -#define C_STD_17 201710L -#define C_STD_23 202311L - -#ifdef __STDC_VERSION__ -# define C_STD __STDC_VERSION__ -#endif - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif C_STD > C_STD_17 -# define C_VERSION "23" -#elif C_STD > C_STD_11 -# define C_VERSION "17" -#elif C_STD > C_STD_99 -# define C_VERSION "11" -#elif C_STD >= C_STD_99 -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out deleted file mode 100755 index ecc315e71b4e62a6558ef29ebb804b7c2bdf9e59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16088 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 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "ARM" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define CXX_STD_98 199711L -#define CXX_STD_11 201103L -#define CXX_STD_14 201402L -#define CXX_STD_17 201703L -#define CXX_STD_20 202002L -#define CXX_STD_23 202302L - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) -# if _MSVC_LANG > CXX_STD_17 -# define CXX_STD _MSVC_LANG -# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) -# define CXX_STD CXX_STD_20 -# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 -# define CXX_STD CXX_STD_20 -# elif _MSVC_LANG > CXX_STD_14 -# define CXX_STD CXX_STD_17 -# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# elif defined(__INTEL_CXX11_MODE__) -# define CXX_STD CXX_STD_11 -# else -# define CXX_STD CXX_STD_98 -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# if _MSVC_LANG > __cplusplus -# define CXX_STD _MSVC_LANG -# else -# define CXX_STD __cplusplus -# endif -#elif defined(__NVCOMPILER) -# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) -# define CXX_STD CXX_STD_20 -# else -# define CXX_STD __cplusplus -# endif -#elif defined(__INTEL_COMPILER) || defined(__PGI) -# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) -# define CXX_STD CXX_STD_17 -# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# else -# define CXX_STD __cplusplus -# endif -#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) -# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# else -# define CXX_STD __cplusplus -# endif -#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) -# define CXX_STD CXX_STD_11 -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > CXX_STD_23 - "26" -#elif CXX_STD > CXX_STD_20 - "23" -#elif CXX_STD > CXX_STD_17 - "20" -#elif CXX_STD > CXX_STD_14 - "17" -#elif CXX_STD > CXX_STD_11 - "14" -#elif CXX_STD >= CXX_STD_11 - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out b/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out deleted file mode 100755 index c8ced32cf082708045baa23211fbf858c298928d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16096 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 ASpWb4 diff --git a/_codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml b/_codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml deleted file mode 100644 index 37e5718..0000000 --- a/_codeql_build_dir/CMakeFiles/CMakeConfigureLog.yaml +++ /dev/null @@ -1,566 +0,0 @@ - ---- -events: - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake:205 (message)" - - "CMakeLists.txt:7 (project)" - message: | - The system is: Linux - 6.11.0-1018-azure - x86_64 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:7 (project)" - message: | - Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. - Compiler: /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc - Build flags: - Id flags: - - The output was: - 0 - - - Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" - - The C compiler identification is GNU, found in: - /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdC/a.out - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:7 (project)" - message: | - Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. - Compiler: /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ - Build flags: - Id flags: - - The output was: - 0 - - - Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" - - The CXX compiler identification is GNU, found in: - /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/3.31.6/CompilerIdCXX/a.out - - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - checks: - - "Detecting C compiler ABI info" - directories: - source: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq" - binary: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq" - cmakeVariables: - CMAKE_C_FLAGS: "" - CMAKE_C_FLAGS_DEBUG: "-g" - CMAKE_EXE_LINKER_FLAGS: "" - buildResult: - variable: "CMAKE_C_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_c92d3/fast - /usr/bin/gmake -f CMakeFiles/cmTC_c92d3.dir/build.make CMakeFiles/cmTC_c92d3.dir/build - gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq' - Building C object CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o - /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc -v -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c - Using built-in specs. - COLLECT_GCC=/usr/bin/cc - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_c92d3.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccnFGRSV.s - GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) - compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/lib/gcc/x86_64-linux-gnu/13/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - Compiler executable checksum: 38987c28e967c64056a6454abdef726e - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/' - as -v --64 -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o /tmp/ccnFGRSV.s - GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.' - Linking C executable cmTC_c92d3 - /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c92d3.dir/link.txt --verbose=1 - Using built-in specs. - COLLECT_GCC=/usr/bin/cc - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c92d3' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c92d3.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - collect2 version 13.3.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - GNU ld (GNU Binutils for Ubuntu) 2.42 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c92d3' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c92d3.' - /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc -v -Wl,-v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -o cmTC_c92d3 - gmake[1]: Leaving directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq' - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - message: | - Parsed C implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] - add: [/usr/local/include] - add: [/usr/include/x86_64-linux-gnu] - add: [/usr/include] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - message: | - Parsed C implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_c92d3/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_c92d3.dir/build.make CMakeFiles/cmTC_c92d3.dir/build] - ignore line: [gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-EDiwYq'] - ignore line: [Building C object CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o] - ignore line: [/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/cc -v -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_c92d3.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccnFGRSV.s] - ignore line: [GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] - ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] - ignore line: [] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include/x86_64-linux-gnu] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [Compiler executable checksum: 38987c28e967c64056a6454abdef726e] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o /tmp/ccnFGRSV.s] - ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.'] - ignore line: [Linking C executable cmTC_c92d3] - ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c92d3.dir/link.txt --verbose=1] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c92d3' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c92d3.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccLgpDSl.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [--build-id] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [--as-needed] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-pie] ==> ignore - arg [-znow] ==> ignore - arg [-zrelro] ==> ignore - arg [-o] ==> ignore - arg [cmTC_c92d3] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] - arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o] ==> ignore - arg [-lgcc] ==> lib [gcc] - arg [--push-state] ==> ignore - arg [--as-needed] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [--pop-state] ==> ignore - arg [-lc] ==> lib [c] - arg [-lgcc] ==> lib [gcc] - arg [--push-state] ==> ignore - arg [--as-needed] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [--pop-state] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - ignore line: [collect2 version 13.3.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccLgpDSl.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c92d3 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_c92d3.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - linker tool for 'C': /usr/bin/ld - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] - implicit libs: [gcc;gcc_s;c;gcc;gcc_s] - implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] - implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] - implicit fwks: [] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - message: | - Running the C compiler's linker: "/usr/bin/ld" "-v" - GNU ld (GNU Binutils for Ubuntu) 2.42 - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - checks: - - "Detecting CXX compiler ABI info" - directories: - source: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th" - binary: "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th" - cmakeVariables: - CMAKE_CXX_FLAGS: "" - CMAKE_CXX_FLAGS_DEBUG: "-g" - CMAKE_CXX_SCAN_FOR_MODULES: "OFF" - CMAKE_EXE_LINKER_FLAGS: "" - buildResult: - variable: "CMAKE_CXX_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_4463d/fast - /usr/bin/gmake -f CMakeFiles/cmTC_4463d.dir/build.make CMakeFiles/cmTC_4463d.dir/build - gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th' - Building CXX object CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o - /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -std=gnu++20 -v -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp - Using built-in specs. - COLLECT_GCC=/usr/bin/c++ - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) - COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4463d.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++20 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccX3sT8y.s - GNU C++20 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) - compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13" - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/include/c++/13 - /usr/include/x86_64-linux-gnu/c++/13 - /usr/include/c++/13/backward - /usr/lib/gcc/x86_64-linux-gnu/13/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - Compiler executable checksum: c81c05345ce537099dafd5580045814a - COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/' - as -v --64 -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccX3sT8y.s - GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_4463d - /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4463d.dir/link.txt --verbose=1 - Using built-in specs. - COLLECT_GCC=/usr/bin/c++ - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4463d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4463d.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - collect2 version 13.3.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - GNU ld (GNU Binutils for Ubuntu) 2.42 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4463d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4463d.' - /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -v -Wl,-v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_4463d - gmake[1]: Leaving directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th' - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - message: | - Parsed CXX implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/usr/include/c++/13] - add: [/usr/include/x86_64-linux-gnu/c++/13] - add: [/usr/include/c++/13/backward] - add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] - add: [/usr/local/include] - add: [/usr/include/x86_64-linux-gnu] - add: [/usr/include] - end of search list found - collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13] - collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13] - collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward] - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - message: | - Parsed CXX implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_4463d/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_4463d.dir/build.make CMakeFiles/cmTC_4463d.dir/build] - ignore line: [gmake[1]: Entering directory '/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/CMakeScratch/TryCompile-2BB7Th'] - ignore line: [Building CXX object CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -std=gnu++20 -v -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] - ignore line: [COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4463d.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++20 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccX3sT8y.s] - ignore line: [GNU C++20 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] - ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] - ignore line: [] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"] - ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/include/c++/13] - ignore line: [ /usr/include/x86_64-linux-gnu/c++/13] - ignore line: [ /usr/include/c++/13/backward] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include/x86_64-linux-gnu] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [Compiler executable checksum: c81c05345ce537099dafd5580045814a] - ignore line: [COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccX3sT8y.s] - ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-std=gnu++20' '-v' '-o' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_4463d] - ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4463d.dir/link.txt --verbose=1] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4463d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4463d.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccRlv9KY.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [--build-id] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [--as-needed] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-pie] ==> ignore - arg [-znow] ==> ignore - arg [-zrelro] ==> ignore - arg [-o] ==> ignore - arg [cmTC_4463d] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] - arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore - arg [-lstdc++] ==> lib [stdc++] - arg [-lm] ==> lib [m] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [-lc] ==> lib [c] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - ignore line: [collect2 version 13.3.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRlv9KY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4463d /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_4463d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - linker tool for 'CXX': /usr/bin/ld - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] - implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] - implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] - implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] - implicit fwks: [] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:7 (project)" - message: | - Running the CXX compiler's linker: "/usr/bin/ld" "-v" - GNU ld (GNU Binutils for Ubuntu) 2.42 -... diff --git a/_codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake b/_codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 0e5940d..0000000 --- a/_codeql_build_dir/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/runner/work/libsharedmemory/libsharedmemory") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/_codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt b/_codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt deleted file mode 100644 index 134d9b6..0000000 --- a/_codeql_build_dir/CMakeFiles/CMakeRuleHashes.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Hashes of file build rules. -339bb651ed893c6302918689e5a86d0c test/CMakeFiles/run_test diff --git a/_codeql_build_dir/CMakeFiles/Makefile.cmake b/_codeql_build_dir/CMakeFiles/Makefile.cmake deleted file mode 100644 index ba79420..0000000 --- a/_codeql_build_dir/CMakeFiles/Makefile.cmake +++ /dev/null @@ -1,144 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# The generator used is: -set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") - -# The top level Makefile was generated from the following files: -set(CMAKE_MAKEFILE_DEPENDS - "CMakeCache.txt" - "/home/runner/work/libsharedmemory/libsharedmemory/CMakeLists.txt" - "CMakeFiles/3.31.6/CMakeCCompiler.cmake" - "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" - "CMakeFiles/3.31.6/CMakeSystem.cmake" - "/home/runner/work/libsharedmemory/libsharedmemory/test/CMakeLists.txt" - "/usr/local/share/cmake-3.31/Modules/CMakeCCompiler.cmake.in" - "/usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c" - "/usr/local/share/cmake-3.31/Modules/CMakeCInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeCXXCompiler.cmake.in" - "/usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp" - "/usr/local/share/cmake-3.31/Modules/CMakeCXXInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeCommonLanguageInclude.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeCompilerIdDetection.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerSupport.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeFindBinUtils.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeGenericSystem.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeInitializeConfigs.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeLanguageInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeParseImplicitIncludeInfo.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeParseImplicitLinkInfo.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeParseLibraryArchitecture.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeSystem.cmake.in" - "/usr/local/share/cmake-3.31/Modules/CMakeSystemSpecificInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeSystemSpecificInitialize.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeTestCompilerCommon.cmake" - "/usr/local/share/cmake-3.31/Modules/CMakeUnixFindMake.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/ADSP-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Borland-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Clang-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Cray-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/CrayClang-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GHS-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-C.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-CXX.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GNU-FindBinUtils.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/GNU.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/HP-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/IAR-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Intel-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/LCC-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/MSVC-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/OrangeC-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/PGI-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/PathScale-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/SCO-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/TI-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/TIClang-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Tasking-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/Watcom-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/XL-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeCLinkerInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeCXXLinkerInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeCommonLinkerInformation.cmake" - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake" - "/usr/local/share/cmake-3.31/Modules/Internal/FeatureTesting.cmake" - "/usr/local/share/cmake-3.31/Modules/Linker/GNU-C.cmake" - "/usr/local/share/cmake-3.31/Modules/Linker/GNU-CXX.cmake" - "/usr/local/share/cmake-3.31/Modules/Linker/GNU.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linker/GNU.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU-C.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU-CXX.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linker/Linux-GNU.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linux-Determine-CXX.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linux-GNU-C.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linux-GNU-CXX.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linux-GNU.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linux-Initialize.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/Linux.cmake" - "/usr/local/share/cmake-3.31/Modules/Platform/UnixPaths.cmake" - ) - -# The corresponding makefile is: -set(CMAKE_MAKEFILE_OUTPUTS - "Makefile" - "CMakeFiles/cmake.check_cache" - ) - -# Byproducts of CMake generate step: -set(CMAKE_MAKEFILE_PRODUCTS - "CMakeFiles/3.31.6/CMakeSystem.cmake" - "CMakeFiles/3.31.6/CMakeCCompiler.cmake" - "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" - "CMakeFiles/3.31.6/CMakeCCompiler.cmake" - "CMakeFiles/3.31.6/CMakeCXXCompiler.cmake" - "CMakeFiles/CMakeDirectoryInformation.cmake" - "test/CMakeFiles/CMakeDirectoryInformation.cmake" - ) - -# Dependency information for all targets: -set(CMAKE_DEPEND_INFO_FILES - "test/CMakeFiles/lsm_test.dir/DependInfo.cmake" - "test/CMakeFiles/run_test.dir/DependInfo.cmake" - ) diff --git a/_codeql_build_dir/CMakeFiles/Makefile2 b/_codeql_build_dir/CMakeFiles/Makefile2 deleted file mode 100644 index 998dafd..0000000 --- a/_codeql_build_dir/CMakeFiles/Makefile2 +++ /dev/null @@ -1,177 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Produce verbose output by default. -VERBOSE = 1 - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/bin/cmake - -# The command to remove a file. -RM = /usr/local/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir - -#============================================================================= -# Directory level rules for the build root directory - -# The main recursive "all" target. -all: test/all -.PHONY : all - -# The main recursive "codegen" target. -codegen: test/codegen -.PHONY : codegen - -# The main recursive "preinstall" target. -preinstall: test/preinstall -.PHONY : preinstall - -# The main recursive "clean" target. -clean: test/clean -.PHONY : clean - -#============================================================================= -# Directory level rules for directory test - -# Recursive "all" directory target. -test/all: test/CMakeFiles/lsm_test.dir/all -.PHONY : test/all - -# Recursive "codegen" directory target. -test/codegen: test/CMakeFiles/lsm_test.dir/codegen -.PHONY : test/codegen - -# Recursive "preinstall" directory target. -test/preinstall: -.PHONY : test/preinstall - -# Recursive "clean" directory target. -test/clean: test/CMakeFiles/lsm_test.dir/clean -test/clean: test/CMakeFiles/run_test.dir/clean -.PHONY : test/clean - -#============================================================================= -# Target rules for target test/CMakeFiles/lsm_test.dir - -# All Build rule for target. -test/CMakeFiles/lsm_test.dir/all: - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/depend - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=1,2 "Built target lsm_test" -.PHONY : test/CMakeFiles/lsm_test.dir/all - -# Build rule for subdir invocation for target. -test/CMakeFiles/lsm_test.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 2 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/lsm_test.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 -.PHONY : test/CMakeFiles/lsm_test.dir/rule - -# Convenience name for target. -lsm_test: test/CMakeFiles/lsm_test.dir/rule -.PHONY : lsm_test - -# codegen rule for target. -test/CMakeFiles/lsm_test.dir/codegen: - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/codegen - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=1,2 "Finished codegen for target lsm_test" -.PHONY : test/CMakeFiles/lsm_test.dir/codegen - -# clean rule for target. -test/CMakeFiles/lsm_test.dir/clean: - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/clean -.PHONY : test/CMakeFiles/lsm_test.dir/clean - -#============================================================================= -# Target rules for target test/CMakeFiles/run_test.dir - -# All Build rule for target. -test/CMakeFiles/run_test.dir/all: test/CMakeFiles/lsm_test.dir/all - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/depend - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num= "Built target run_test" -.PHONY : test/CMakeFiles/run_test.dir/all - -# Build rule for subdir invocation for target. -test/CMakeFiles/run_test.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 2 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/run_test.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 -.PHONY : test/CMakeFiles/run_test.dir/rule - -# Convenience name for target. -run_test: test/CMakeFiles/run_test.dir/rule -.PHONY : run_test - -# codegen rule for target. -test/CMakeFiles/run_test.dir/codegen: test/CMakeFiles/lsm_test.dir/all - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/codegen - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num= "Finished codegen for target run_test" -.PHONY : test/CMakeFiles/run_test.dir/codegen - -# clean rule for target. -test/CMakeFiles/run_test.dir/clean: - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/clean -.PHONY : test/CMakeFiles/run_test.dir/clean - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/_codeql_build_dir/CMakeFiles/TargetDirectories.txt b/_codeql_build_dir/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index df24a70..0000000 --- a/_codeql_build_dir/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,8 +0,0 @@ -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/test.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/edit_cache.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles/rebuild_cache.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/lsm_test.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/run_test.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/test.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/edit_cache.dir -/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/rebuild_cache.dir diff --git a/_codeql_build_dir/CMakeFiles/cmake.check_cache b/_codeql_build_dir/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/_codeql_build_dir/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/_codeql_build_dir/CMakeFiles/progress.marks b/_codeql_build_dir/CMakeFiles/progress.marks deleted file mode 100644 index 0cfbf08..0000000 --- a/_codeql_build_dir/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/_codeql_build_dir/CTestTestfile.cmake b/_codeql_build_dir/CTestTestfile.cmake deleted file mode 100644 index 353ca5b..0000000 --- a/_codeql_build_dir/CTestTestfile.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# CMake generated Testfile for -# Source directory: /home/runner/work/libsharedmemory/libsharedmemory -# Build directory: /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. -subdirs("test") diff --git a/_codeql_build_dir/Makefile b/_codeql_build_dir/Makefile deleted file mode 100644 index dc737bf..0000000 --- a/_codeql_build_dir/Makefile +++ /dev/null @@ -1,182 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Produce verbose output by default. -VERBOSE = 1 - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/bin/cmake - -# The command to remove a file. -RM = /usr/local/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target test -test: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." - /usr/local/bin/ctest --force-new-ctest-process $(ARGS) -.PHONY : test - -# Special rule for the target test -test/fast: test -.PHONY : test/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." - /usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache -.PHONY : edit_cache/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." - /usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache -.PHONY : rebuild_cache/fast - -# The main all target -all: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir//CMakeFiles/progress.marks - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -#============================================================================= -# Target rules for targets named lsm_test - -# Build rule for target. -lsm_test: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 lsm_test -.PHONY : lsm_test - -# fast build rule for target. -lsm_test/fast: - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/build -.PHONY : lsm_test/fast - -#============================================================================= -# Target rules for targets named run_test - -# Build rule for target. -run_test: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 run_test -.PHONY : run_test - -# fast build rule for target. -run_test/fast: - $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/build -.PHONY : run_test/fast - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... rebuild_cache" - @echo "... test" - @echo "... run_test" - @echo "... lsm_test" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/_codeql_build_dir/cmake_install.cmake b/_codeql_build_dir/cmake_install.cmake deleted file mode 100644 index 0be7dd5..0000000 --- a/_codeql_build_dir/cmake_install.cmake +++ /dev/null @@ -1,72 +0,0 @@ -# Install script for directory: /home/runner/work/libsharedmemory/libsharedmemory - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -# Set path to fallback-tool for dependency-resolution. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/objdump") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - # Include the install script for each subdirectory. - include("/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/cmake_install.cmake") - -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -if(CMAKE_INSTALL_LOCAL_ONLY) - file(WRITE "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/install_local_manifest.txt" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") -endif() -if(CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") - else() - string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") - unset(CMAKE_INST_COMP_HASH) - endif() -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - file(WRITE "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") -endif() diff --git a/_codeql_build_dir/compile_commands.json b/_codeql_build_dir/compile_commands.json deleted file mode 100644 index 0c04cc1..0000000 --- a/_codeql_build_dir/compile_commands.json +++ /dev/null @@ -1,8 +0,0 @@ -[ -{ - "directory": "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test", - "command": "/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -I/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test -I/home/runner/work/libsharedmemory/libsharedmemory/test -I/home/runner/work/libsharedmemory/libsharedmemory/include -O3 -DNDEBUG -std=gnu++20 -Wall -Wno-missing-braces -std=c++20 -fPIC -o CMakeFiles/lsm_test.dir/test.cc.o -c /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc", - "file": "/home/runner/work/libsharedmemory/libsharedmemory/test/test.cc", - "output": "test/CMakeFiles/lsm_test.dir/test.cc.o" -} -] \ No newline at end of file diff --git a/_codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake b/_codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 0e5940d..0000000 --- a/_codeql_build_dir/test/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/runner/work/libsharedmemory/libsharedmemory") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake deleted file mode 100644 index 6cde508..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake +++ /dev/null @@ -1,24 +0,0 @@ - -# Consider dependencies only in project. -set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) - -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - ) - -# The set of dependency files which are needed: -set(CMAKE_DEPENDS_DEPENDENCY_FILES - "/home/runner/work/libsharedmemory/libsharedmemory/test/test.cc" "test/CMakeFiles/lsm_test.dir/test.cc.o" "gcc" "test/CMakeFiles/lsm_test.dir/test.cc.o.d" - "" "test/lsm_test" "gcc" "test/CMakeFiles/lsm_test.dir/link.d" - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make deleted file mode 100644 index 3c6ade3..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/build.make +++ /dev/null @@ -1,117 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Produce verbose output by default. -VERBOSE = 1 - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/bin/cmake - -# The command to remove a file. -RM = /usr/local/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir - -# Include any dependencies generated for this target. -include test/CMakeFiles/lsm_test.dir/depend.make -# Include any dependencies generated by the compiler for this target. -include test/CMakeFiles/lsm_test.dir/compiler_depend.make - -# Include the progress variables for this target. -include test/CMakeFiles/lsm_test.dir/progress.make - -# Include the compile flags for this target's objects. -include test/CMakeFiles/lsm_test.dir/flags.make - -test/CMakeFiles/lsm_test.dir/codegen: -.PHONY : test/CMakeFiles/lsm_test.dir/codegen - -test/CMakeFiles/lsm_test.dir/test.cc.o: test/CMakeFiles/lsm_test.dir/flags.make -test/CMakeFiles/lsm_test.dir/test.cc.o: /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc -test/CMakeFiles/lsm_test.dir/test.cc.o: test/CMakeFiles/lsm_test.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object test/CMakeFiles/lsm_test.dir/test.cc.o" - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT test/CMakeFiles/lsm_test.dir/test.cc.o -MF CMakeFiles/lsm_test.dir/test.cc.o.d -o CMakeFiles/lsm_test.dir/test.cc.o -c /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc - -test/CMakeFiles/lsm_test.dir/test.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/lsm_test.dir/test.cc.i" - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc > CMakeFiles/lsm_test.dir/test.cc.i - -test/CMakeFiles/lsm_test.dir/test.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/lsm_test.dir/test.cc.s" - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc -o CMakeFiles/lsm_test.dir/test.cc.s - -# Object files for target lsm_test -lsm_test_OBJECTS = \ -"CMakeFiles/lsm_test.dir/test.cc.o" - -# External object files for target lsm_test -lsm_test_EXTERNAL_OBJECTS = - -test/lsm_test: test/CMakeFiles/lsm_test.dir/test.cc.o -test/lsm_test: test/CMakeFiles/lsm_test.dir/build.make -test/lsm_test: test/CMakeFiles/lsm_test.dir/compiler_depend.ts -test/lsm_test: test/CMakeFiles/lsm_test.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable lsm_test" - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/lsm_test.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -test/CMakeFiles/lsm_test.dir/build: test/lsm_test -.PHONY : test/CMakeFiles/lsm_test.dir/build - -test/CMakeFiles/lsm_test.dir/clean: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && $(CMAKE_COMMAND) -P CMakeFiles/lsm_test.dir/cmake_clean.cmake -.PHONY : test/CMakeFiles/lsm_test.dir/clean - -test/CMakeFiles/lsm_test.dir/depend: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/runner/work/libsharedmemory/libsharedmemory /home/runner/work/libsharedmemory/libsharedmemory/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/DependInfo.cmake "--color=$(COLOR)" -.PHONY : test/CMakeFiles/lsm_test.dir/depend - diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake deleted file mode 100644 index 064f525..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/cmake_clean.cmake +++ /dev/null @@ -1,12 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/lsm_test.dir/link.d" - "CMakeFiles/lsm_test.dir/test.cc.o" - "CMakeFiles/lsm_test.dir/test.cc.o.d" - "lsm_test" - "lsm_test.pdb" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/lsm_test.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make deleted file mode 100644 index a0a0418..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty compiler generated dependencies file for lsm_test. -# This may be replaced when dependencies are built. diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts deleted file mode 100644 index f143ba3..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/compiler_depend.ts +++ /dev/null @@ -1,2 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Timestamp file for compiler generated dependencies management for lsm_test. diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make deleted file mode 100644 index 1041520..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty dependencies file for lsm_test. -# This may be replaced when dependencies are built. diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make deleted file mode 100644 index b7128ea..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# compile CXX with /home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -CXX_DEFINES = - -CXX_INCLUDES = -I/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test -I/home/runner/work/libsharedmemory/libsharedmemory/test -I/home/runner/work/libsharedmemory/libsharedmemory/include - -CXX_FLAGS = -O3 -DNDEBUG -std=gnu++20 -Wall -Wno-missing-braces -std=c++20 -fPIC - diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d deleted file mode 100644 index c3502e6..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.d +++ /dev/null @@ -1,97 +0,0 @@ -lsm_test: \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o \ - /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o \ - CMakeFiles/lsm_test.dir/test.cc.o \ - /usr/lib/gcc/x86_64-linux-gnu/13/libstdc++.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so \ - /lib/x86_64-linux-gnu/libm.so.6 \ - /lib/x86_64-linux-gnu/libmvec.so.1 \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1 \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so \ - /lib/x86_64-linux-gnu/libc.so.6 \ - /usr/lib/x86_64-linux-gnu/libc_nonshared.a \ - /lib64/ld-linux-x86-64.so.2 \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1 \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ - /usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a \ - /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o \ - /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o \ - /lib/x86_64-linux-gnu/libm.so.6 \ - /lib64/ld-linux-x86-64.so.2 - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o: - -/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o: - -CMakeFiles/lsm_test.dir/test.cc.o: - -/usr/lib/gcc/x86_64-linux-gnu/13/libstdc++.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libm.so: - -/lib/x86_64-linux-gnu/libm.so.6: - -/lib/x86_64-linux-gnu/libmvec.so.1: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libc.so: - -/lib/x86_64-linux-gnu/libc.so.6: - -/usr/lib/x86_64-linux-gnu/libc_nonshared.a: - -/lib64/ld-linux-x86-64.so.2: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc_s.so: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/libgcc_s.so.1: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: - -/usr/lib/gcc/x86_64-linux-gnu/13/libgcc.a: - -/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o: - -/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o: - -/lib/x86_64-linux-gnu/libm.so.6: - -/lib64/ld-linux-x86-64.so.2: diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt deleted file mode 100644 index bfd3870..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -/home/runner/work/libsharedmemory/.codeql-scratch/dbs/cpp/working/autobuild/bin/c++ -O3 -DNDEBUG -Wl,--dependency-file=CMakeFiles/lsm_test.dir/link.d CMakeFiles/lsm_test.dir/test.cc.o -o lsm_test diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make deleted file mode 100644 index abadeb0..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = 2 - diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o deleted file mode 100644 index 68812195f22a5499e4d89fcab8a84da392aad147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339680 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 diff --git a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d b/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d deleted file mode 100644 index 7089edf..0000000 --- a/_codeql_build_dir/test/CMakeFiles/lsm_test.dir/test.cc.o.d +++ /dev/null @@ -1,269 +0,0 @@ -test/CMakeFiles/lsm_test.dir/test.cc.o: \ - /home/runner/work/libsharedmemory/libsharedmemory/test/test.cc \ - /usr/include/stdc-predef.h \ - /home/runner/work/libsharedmemory/libsharedmemory/include/libsharedmemory/libsharedmemory.hpp \ - /usr/include/c++/13/ostream /usr/include/c++/13/bits/requires_hosted.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h \ - /usr/include/features.h /usr/include/features-time64.h \ - /usr/include/x86_64-linux-gnu/bits/wordsize.h \ - /usr/include/x86_64-linux-gnu/bits/timesize.h \ - /usr/include/x86_64-linux-gnu/sys/cdefs.h \ - /usr/include/x86_64-linux-gnu/bits/long-double.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs.h \ - /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/cpu_defines.h \ - /usr/include/c++/13/pstl/pstl_config.h /usr/include/c++/13/ios \ - /usr/include/c++/13/iosfwd /usr/include/c++/13/bits/stringfwd.h \ - /usr/include/c++/13/bits/memoryfwd.h /usr/include/c++/13/bits/postypes.h \ - /usr/include/c++/13/cwchar /usr/include/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ - /usr/include/x86_64-linux-gnu/bits/floatn.h \ - /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/stddef.h \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/stdarg.h \ - /usr/include/x86_64-linux-gnu/bits/wchar.h \ - /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ - /usr/include/x86_64-linux-gnu/bits/wchar2-decl.h \ - /usr/include/x86_64-linux-gnu/bits/wchar2.h \ - /usr/include/c++/13/exception /usr/include/c++/13/bits/exception.h \ - /usr/include/c++/13/bits/exception_ptr.h \ - /usr/include/c++/13/bits/exception_defines.h \ - /usr/include/c++/13/bits/cxxabi_init_exception.h \ - /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/hash_bytes.h \ - /usr/include/c++/13/new /usr/include/c++/13/bits/move.h \ - /usr/include/c++/13/type_traits \ - /usr/include/c++/13/bits/nested_exception.h \ - /usr/include/c++/13/bits/char_traits.h /usr/include/c++/13/compare \ - /usr/include/c++/13/concepts /usr/include/c++/13/bits/stl_construct.h \ - /usr/include/c++/13/bits/stl_iterator_base_types.h \ - /usr/include/c++/13/bits/iterator_concepts.h \ - /usr/include/c++/13/bits/ptr_traits.h \ - /usr/include/c++/13/bits/ranges_cmp.h \ - /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ - /usr/include/c++/13/bits/concept_check.h \ - /usr/include/c++/13/debug/assertions.h \ - /usr/include/c++/13/bits/localefwd.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/c++locale.h \ - /usr/include/c++/13/clocale /usr/include/locale.h \ - /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/13/cctype \ - /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/types.h \ - /usr/include/x86_64-linux-gnu/bits/typesizes.h \ - /usr/include/x86_64-linux-gnu/bits/time64.h \ - /usr/include/x86_64-linux-gnu/bits/endian.h \ - /usr/include/x86_64-linux-gnu/bits/endianness.h \ - /usr/include/c++/13/bits/ios_base.h /usr/include/c++/13/ext/atomicity.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/gthr.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/gthr-default.h \ - /usr/include/pthread.h /usr/include/sched.h \ - /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ - /usr/include/x86_64-linux-gnu/bits/sched.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ - /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ - /usr/include/x86_64-linux-gnu/bits/time.h \ - /usr/include/x86_64-linux-gnu/bits/timex.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ - /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ - /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ - /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ - /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ - /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ - /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ - /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ - /usr/include/x86_64-linux-gnu/bits/setjmp.h \ - /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ - /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/atomic_word.h \ - /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ - /usr/include/c++/13/bits/locale_classes.h /usr/include/c++/13/string \ - /usr/include/c++/13/bits/allocator.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h \ - /usr/include/c++/13/bits/new_allocator.h \ - /usr/include/c++/13/bits/functexcept.h \ - /usr/include/c++/13/bits/cpp_type_traits.h \ - /usr/include/c++/13/bits/ostream_insert.h \ - /usr/include/c++/13/bits/cxxabi_forced.h \ - /usr/include/c++/13/bits/stl_iterator.h \ - /usr/include/c++/13/ext/type_traits.h \ - /usr/include/c++/13/bits/stl_function.h \ - /usr/include/c++/13/backward/binders.h \ - /usr/include/c++/13/ext/numeric_traits.h \ - /usr/include/c++/13/bits/stl_algobase.h \ - /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/bits/utility.h \ - /usr/include/c++/13/debug/debug.h \ - /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ - /usr/include/c++/13/bits/refwrap.h /usr/include/c++/13/bits/invoke.h \ - /usr/include/c++/13/bits/range_access.h \ - /usr/include/c++/13/initializer_list \ - /usr/include/c++/13/bits/basic_string.h \ - /usr/include/c++/13/ext/alloc_traits.h \ - /usr/include/c++/13/bits/alloc_traits.h /usr/include/c++/13/string_view \ - /usr/include/c++/13/bits/functional_hash.h \ - /usr/include/c++/13/bits/ranges_base.h \ - /usr/include/c++/13/bits/max_size_type.h /usr/include/c++/13/numbers \ - /usr/include/c++/13/bits/string_view.tcc \ - /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cstdlib \ - /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ - /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ - /usr/include/x86_64-linux-gnu/sys/types.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ - /usr/include/x86_64-linux-gnu/bits/byteswap.h \ - /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ - /usr/include/x86_64-linux-gnu/sys/select.h \ - /usr/include/x86_64-linux-gnu/bits/select.h \ - /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ - /usr/include/x86_64-linux-gnu/bits/select2.h \ - /usr/include/x86_64-linux-gnu/bits/select-decl.h /usr/include/alloca.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ - /usr/include/x86_64-linux-gnu/bits/stdlib.h \ - /usr/include/c++/13/bits/std_abs.h /usr/include/c++/13/cstdio \ - /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ - /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ - /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ - /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h \ - /usr/include/x86_64-linux-gnu/bits/stdio.h \ - /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/13/cerrno \ - /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ - /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ - /usr/include/c++/13/bits/charconv.h \ - /usr/include/c++/13/bits/basic_string.tcc \ - /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ - /usr/include/c++/13/bits/uses_allocator.h \ - /usr/include/c++/13/bits/uses_allocator_args.h /usr/include/c++/13/tuple \ - /usr/include/c++/13/bits/ranges_util.h \ - /usr/include/c++/13/bits/locale_classes.tcc \ - /usr/include/c++/13/system_error \ - /usr/include/x86_64-linux-gnu/c++/13/bits/error_constants.h \ - /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ - /usr/include/c++/13/bits/streambuf.tcc \ - /usr/include/c++/13/bits/basic_ios.h \ - /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ - /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_base.h \ - /usr/include/c++/13/bits/streambuf_iterator.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/ctype_inline.h \ - /usr/include/c++/13/bits/locale_facets.tcc \ - /usr/include/c++/13/bits/basic_ios.tcc \ - /usr/include/c++/13/bits/ostream.tcc /usr/include/c++/13/cstring \ - /usr/include/string.h /usr/include/strings.h \ - /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ - /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ - /usr/include/c++/13/cstdint \ - /usr/lib/gcc/x86_64-linux-gnu/13/include/stdint.h /usr/include/stdint.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ - /usr/include/x86_64-linux-gnu/bits/stdint-least.h \ - /usr/include/c++/13/limits /usr/include/c++/13/span \ - /usr/include/c++/13/array /usr/include/fcntl.h \ - /usr/include/x86_64-linux-gnu/bits/fcntl.h \ - /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ - /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ - /usr/include/linux/falloc.h /usr/include/x86_64-linux-gnu/bits/stat.h \ - /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ - /usr/include/x86_64-linux-gnu/bits/fcntl2.h \ - /usr/include/x86_64-linux-gnu/sys/mman.h \ - /usr/include/x86_64-linux-gnu/bits/mman.h \ - /usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h \ - /usr/include/x86_64-linux-gnu/bits/mman-linux.h \ - /usr/include/x86_64-linux-gnu/bits/mman-shared.h \ - /usr/include/x86_64-linux-gnu/bits/mman_ext.h /usr/include/unistd.h \ - /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ - /usr/include/x86_64-linux-gnu/bits/environments.h \ - /usr/include/x86_64-linux-gnu/bits/confname.h \ - /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ - /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ - /usr/include/x86_64-linux-gnu/bits/unistd.h \ - /usr/include/x86_64-linux-gnu/bits/unistd-decl.h \ - /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ - /usr/include/linux/close_range.h \ - /home/runner/work/libsharedmemory/libsharedmemory/test/lest.hpp \ - /usr/include/c++/13/algorithm /usr/include/c++/13/bits/stl_algo.h \ - /usr/include/c++/13/bits/algorithmfwd.h \ - /usr/include/c++/13/bits/stl_heap.h \ - /usr/include/c++/13/bits/uniform_int_dist.h \ - /usr/include/c++/13/bits/stl_tempbuf.h \ - /usr/include/c++/13/bits/ranges_algo.h \ - /usr/include/c++/13/bits/ranges_algobase.h \ - /usr/include/c++/13/pstl/glue_algorithm_defs.h \ - /usr/include/c++/13/pstl/execution_defs.h /usr/include/c++/13/chrono \ - /usr/include/c++/13/bits/chrono.h /usr/include/c++/13/ratio \ - /usr/include/c++/13/ctime /usr/include/c++/13/bits/parse_numbers.h \ - /usr/include/c++/13/sstream /usr/include/c++/13/istream \ - /usr/include/c++/13/bits/istream.tcc \ - /usr/include/c++/13/bits/sstream.tcc /usr/include/c++/13/vector \ - /usr/include/c++/13/bits/stl_uninitialized.h \ - /usr/include/c++/13/bits/stl_vector.h \ - /usr/include/c++/13/bits/stl_bvector.h \ - /usr/include/c++/13/bits/vector.tcc \ - /usr/include/c++/13/bits/shared_ptr.h \ - /usr/include/c++/13/bits/shared_ptr_base.h \ - /usr/include/c++/13/bits/allocated_ptr.h \ - /usr/include/c++/13/bits/unique_ptr.h \ - /usr/include/c++/13/ext/aligned_buffer.h \ - /usr/include/c++/13/ext/concurrence.h /usr/include/c++/13/bits/align.h \ - /usr/include/c++/13/bits/chrono_io.h /usr/include/c++/13/iomanip \ - /usr/include/c++/13/locale \ - /usr/include/c++/13/bits/locale_facets_nonio.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/time_members.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/messages_members.h \ - /usr/include/libintl.h /usr/include/c++/13/bits/codecvt.h \ - /usr/include/c++/13/bits/locale_facets_nonio.tcc \ - /usr/include/c++/13/bits/locale_conv.h \ - /usr/include/c++/13/bits/quoted_string.h /usr/include/c++/13/format \ - /usr/include/c++/13/charconv /usr/include/c++/13/optional \ - /usr/include/c++/13/bits/enable_special_members.h \ - /usr/include/c++/13/variant /usr/include/c++/13/functional \ - /usr/include/c++/13/bits/std_function.h \ - /usr/include/c++/13/unordered_map \ - /usr/include/c++/13/bits/unordered_map.h \ - /usr/include/c++/13/bits/hashtable.h \ - /usr/include/c++/13/bits/hashtable_policy.h \ - /usr/include/c++/13/bits/node_handle.h \ - /usr/include/c++/13/bits/erase_if.h /usr/include/c++/13/iostream \ - /usr/include/c++/13/iterator /usr/include/c++/13/bits/stream_iterator.h \ - /usr/include/c++/13/random /usr/include/c++/13/cmath /usr/include/math.h \ - /usr/include/x86_64-linux-gnu/bits/math-vector.h \ - /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ - /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ - /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ - /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ - /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ - /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ - /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ - /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ - /usr/include/c++/13/bits/specfun.h /usr/include/c++/13/tr1/gamma.tcc \ - /usr/include/c++/13/tr1/special_function_util.h \ - /usr/include/c++/13/tr1/bessel_function.tcc \ - /usr/include/c++/13/tr1/beta_function.tcc \ - /usr/include/c++/13/tr1/ell_integral.tcc \ - /usr/include/c++/13/tr1/exp_integral.tcc \ - /usr/include/c++/13/tr1/hypergeometric.tcc \ - /usr/include/c++/13/tr1/legendre_function.tcc \ - /usr/include/c++/13/tr1/modified_bessel_func.tcc \ - /usr/include/c++/13/tr1/poly_hermite.tcc \ - /usr/include/c++/13/tr1/poly_laguerre.tcc \ - /usr/include/c++/13/tr1/riemann_zeta.tcc \ - /usr/include/c++/13/bits/random.h \ - /usr/include/x86_64-linux-gnu/c++/13/bits/opt_random.h \ - /usr/include/c++/13/bits/random.tcc /usr/include/c++/13/numeric \ - /usr/include/c++/13/bits/stl_numeric.h \ - /usr/include/c++/13/pstl/glue_numeric_defs.h /usr/include/c++/13/set \ - /usr/include/c++/13/bits/stl_tree.h /usr/include/c++/13/bits/stl_set.h \ - /usr/include/c++/13/bits/stl_multiset.h /usr/include/c++/13/utility \ - /usr/include/c++/13/bits/stl_relops.h /usr/include/c++/13/bitset diff --git a/_codeql_build_dir/test/CMakeFiles/progress.marks b/_codeql_build_dir/test/CMakeFiles/progress.marks deleted file mode 100644 index 0cfbf08..0000000 --- a/_codeql_build_dir/test/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake b/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake deleted file mode 100644 index 29b95a5..0000000 --- a/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake +++ /dev/null @@ -1,22 +0,0 @@ - -# Consider dependencies only in project. -set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) - -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - ) - -# The set of dependency files which are needed: -set(CMAKE_DEPENDS_DEPENDENCY_FILES - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/build.make b/_codeql_build_dir/test/CMakeFiles/run_test.dir/build.make deleted file mode 100644 index b0a005e..0000000 --- a/_codeql_build_dir/test/CMakeFiles/run_test.dir/build.make +++ /dev/null @@ -1,93 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Produce verbose output by default. -VERBOSE = 1 - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/bin/cmake - -# The command to remove a file. -RM = /usr/local/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir - -# Utility rule file for run_test. - -# Include any custom commands dependencies for this target. -include test/CMakeFiles/run_test.dir/compiler_depend.make - -# Include the progress variables for this target. -include test/CMakeFiles/run_test.dir/progress.make - -test/CMakeFiles/run_test: test/lsm_test - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && ./lsm_test - -test/CMakeFiles/run_test.dir/codegen: -.PHONY : test/CMakeFiles/run_test.dir/codegen - -run_test: test/CMakeFiles/run_test -run_test: test/CMakeFiles/run_test.dir/build.make -.PHONY : run_test - -# Rule to build all files generated by this target. -test/CMakeFiles/run_test.dir/build: run_test -.PHONY : test/CMakeFiles/run_test.dir/build - -test/CMakeFiles/run_test.dir/clean: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test && $(CMAKE_COMMAND) -P CMakeFiles/run_test.dir/cmake_clean.cmake -.PHONY : test/CMakeFiles/run_test.dir/clean - -test/CMakeFiles/run_test.dir/depend: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/runner/work/libsharedmemory/libsharedmemory /home/runner/work/libsharedmemory/libsharedmemory/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/CMakeFiles/run_test.dir/DependInfo.cmake "--color=$(COLOR)" -.PHONY : test/CMakeFiles/run_test.dir/depend - diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake b/_codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake deleted file mode 100644 index 6de7931..0000000 --- a/_codeql_build_dir/test/CMakeFiles/run_test.dir/cmake_clean.cmake +++ /dev/null @@ -1,8 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/run_test" -) - -# Per-language clean rules from dependency scanning. -foreach(lang ) - include(CMakeFiles/run_test.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make b/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make deleted file mode 100644 index bade415..0000000 --- a/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty custom commands generated dependencies file for run_test. -# This may be replaced when dependencies are built. diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts b/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts deleted file mode 100644 index 91eafbe..0000000 --- a/_codeql_build_dir/test/CMakeFiles/run_test.dir/compiler_depend.ts +++ /dev/null @@ -1,2 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Timestamp file for custom commands dependencies management for run_test. diff --git a/_codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make b/_codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make deleted file mode 100644 index 8b13789..0000000 --- a/_codeql_build_dir/test/CMakeFiles/run_test.dir/progress.make +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_codeql_build_dir/test/CTestTestfile.cmake b/_codeql_build_dir/test/CTestTestfile.cmake deleted file mode 100644 index 5a88777..0000000 --- a/_codeql_build_dir/test/CTestTestfile.cmake +++ /dev/null @@ -1,8 +0,0 @@ -# CMake generated Testfile for -# Source directory: /home/runner/work/libsharedmemory/libsharedmemory/test -# Build directory: /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. -add_test(test "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/lsm_test") -set_tests_properties(test PROPERTIES _BACKTRACE_TRIPLES "/home/runner/work/libsharedmemory/libsharedmemory/test/CMakeLists.txt;13;add_test;/home/runner/work/libsharedmemory/libsharedmemory/test/CMakeLists.txt;0;") diff --git a/_codeql_build_dir/test/Makefile b/_codeql_build_dir/test/Makefile deleted file mode 100644 index 0518e5b..0000000 --- a/_codeql_build_dir/test/Makefile +++ /dev/null @@ -1,211 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.31 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Produce verbose output by default. -VERBOSE = 1 - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/bin/cmake - -# The command to remove a file. -RM = /usr/local/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/runner/work/libsharedmemory/libsharedmemory - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target test -test: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." - /usr/local/bin/ctest --force-new-ctest-process $(ARGS) -.PHONY : test - -# Special rule for the target test -test/fast: test -.PHONY : test/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." - /usr/local/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache -.PHONY : edit_cache/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." - /usr/local/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache -.PHONY : rebuild_cache/fast - -# The main all target -all: cmake_check_build_system - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test//CMakeFiles/progress.marks - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/clean -.PHONY : clean - -# The main clean target -clean/fast: clean -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -# Convenience name for target. -test/CMakeFiles/lsm_test.dir/rule: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/lsm_test.dir/rule -.PHONY : test/CMakeFiles/lsm_test.dir/rule - -# Convenience name for target. -lsm_test: test/CMakeFiles/lsm_test.dir/rule -.PHONY : lsm_test - -# fast build rule for target. -lsm_test/fast: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/build -.PHONY : lsm_test/fast - -# Convenience name for target. -test/CMakeFiles/run_test.dir/rule: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test/CMakeFiles/run_test.dir/rule -.PHONY : test/CMakeFiles/run_test.dir/rule - -# Convenience name for target. -run_test: test/CMakeFiles/run_test.dir/rule -.PHONY : run_test - -# fast build rule for target. -run_test/fast: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/run_test.dir/build.make test/CMakeFiles/run_test.dir/build -.PHONY : run_test/fast - -test.o: test.cc.o -.PHONY : test.o - -# target to build an object file -test.cc.o: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/test.cc.o -.PHONY : test.cc.o - -test.i: test.cc.i -.PHONY : test.i - -# target to preprocess a source file -test.cc.i: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/test.cc.i -.PHONY : test.cc.i - -test.s: test.cc.s -.PHONY : test.s - -# target to generate assembly for a file -test.cc.s: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(MAKE) $(MAKESILENT) -f test/CMakeFiles/lsm_test.dir/build.make test/CMakeFiles/lsm_test.dir/test.cc.s -.PHONY : test.cc.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... rebuild_cache" - @echo "... test" - @echo "... run_test" - @echo "... lsm_test" - @echo "... test.o" - @echo "... test.i" - @echo "... test.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - cd /home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/_codeql_build_dir/test/cmake_install.cmake b/_codeql_build_dir/test/cmake_install.cmake deleted file mode 100644 index 09a3a74..0000000 --- a/_codeql_build_dir/test/cmake_install.cmake +++ /dev/null @@ -1,50 +0,0 @@ -# Install script for directory: /home/runner/work/libsharedmemory/libsharedmemory/test - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -# Set path to fallback-tool for dependency-resolution. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/objdump") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -if(CMAKE_INSTALL_LOCAL_ONLY) - file(WRITE "/home/runner/work/libsharedmemory/libsharedmemory/_codeql_build_dir/test/install_local_manifest.txt" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") -endif() diff --git a/_codeql_build_dir/test/lsm_test b/_codeql_build_dir/test/lsm_test deleted file mode 100755 index 7c5499225e6ba0238e842a47ebf77ea904347e44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198160 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
!I|XKKs5wJ`E(|| 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 Date: Tue, 4 Nov 2025 08:45:07 +0100 Subject: [PATCH 27/41] Update libsharedmemory.hpp --- include/libsharedmemory/libsharedmemory.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 0ab0dab..820c3b6 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 3 +#define LIBSHAREDMEMORY_VERSION_MINOR 4 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include From 712803a148ed5c4717a31e068fae65f415527c22 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Wed, 5 Nov 2025 11:14:21 +0100 Subject: [PATCH 28/41] feat: add SharedMemoryQueue for FIFO message handling and enhance shared memory functionality --- include/libsharedmemory/libsharedmemory.hpp | 264 ++++++++++++- test/test.cc | 390 +++++++++++++++++++- 2 files changed, 633 insertions(+), 21 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 820c3b6..fe96c06 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 4 +#define LIBSHAREDMEMORY_VERSION_MINOR 5 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -9,10 +9,9 @@ #include #include #include // nullptr_t, ptrdiff_t, std::size_t -#include // intptr_t, uint8_t, etc. #include #include -#include +#include #if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) #include // O_* constants @@ -434,6 +433,18 @@ class SharedMemoryReadStream return memory[0]; } + [[nodiscard]] bool hasNewData() const noexcept + { + const char flags = readFlags(); + return !!(flags & kMemoryChanged); + } + + void markAsRead() const noexcept + { + auto memory = static_cast(_memory.data()); + memory[0] &= ~kMemoryChanged; + } + void close() { _memory.close(); @@ -536,6 +547,21 @@ class SharedMemoryWriteStream _memory.close(); } + [[nodiscard]] bool isMessageRead() const noexcept + { + const auto memory = static_cast(_memory.data()); + const char flags = memory[0]; + return !(flags & kMemoryChanged); + } + + void waitForRead() const noexcept + { + while (!isMessageRead()) + { + std::this_thread::yield(); + } + } + // https://stackoverflow.com/questions/18591924/how-to-use-bitmask [[nodiscard]] static constexpr char getWriteFlags(const char type, const char currentFlags) noexcept { @@ -628,4 +654,236 @@ class SharedMemoryWriteStream Memory _memory; }; +/** + * @brief Queue structure for shared memory + * Layout: [writeIndex(4)][readIndex(4)][capacity(4)][count(4)][maxMessageSize(4)][messages...] + */ +class SharedMemoryQueue +{ +private: + static constexpr std::size_t kWriteIndexOffset = 0; + static constexpr std::size_t kReadIndexOffset = 4; + static constexpr std::size_t kCapacityOffset = 8; + static constexpr std::size_t kCountOffset = 12; + static constexpr std::size_t kMaxMessageSizeOffset = 16; + static constexpr std::size_t kHeaderSize = 20; + + Memory _memory; + std::uint32_t _capacity; + std::uint32_t _maxMessageSize; + bool _isWriter; + + [[nodiscard]] std::uint32_t readUInt32(std::size_t offset) const noexcept + { + const auto memory = static_cast(_memory.data()); + std::uint32_t value = 0; + std::memcpy(&value, &memory[offset], sizeof(std::uint32_t)); + return value; + } + + void writeUInt32(std::size_t offset, std::uint32_t value) const noexcept + { + auto memory = static_cast(_memory.data()); + std::memcpy(&memory[offset], &value, sizeof(std::uint32_t)); + } + + [[nodiscard]] std::size_t getMessageOffset(std::uint32_t index) const noexcept + { + // Each slot contains: [length(4)][data(maxMessageSize)] + return kHeaderSize + index * (_maxMessageSize + sizeof(std::uint32_t)); + } + +public: + /** + * @brief Create or open a shared memory queue + * @param name Queue name + * @param capacity Maximum number of messages in queue + * @param maxMessageSize Maximum size of each message in bytes + * @param isPersistent Whether the queue persists after process exit + * @param isWriter True to create/write, false to open/read + */ + SharedMemoryQueue(const std::string& name, std::uint32_t capacity, + std::uint32_t maxMessageSize, bool isPersistent, bool isWriter) + : _memory(name, kHeaderSize + capacity * (maxMessageSize + sizeof(std::uint32_t)), isPersistent) + , _capacity(capacity) + , _maxMessageSize(maxMessageSize) + , _isWriter(isWriter) + { + if (isWriter) + { + if (_memory.create() != Error::OK) + { + throw "Shared memory queue could not be created."; + } + + // Initialize queue metadata + writeUInt32(kWriteIndexOffset, 0); + writeUInt32(kReadIndexOffset, 0); + writeUInt32(kCapacityOffset, capacity); + writeUInt32(kCountOffset, 0); + writeUInt32(kMaxMessageSizeOffset, maxMessageSize); + } + else + { + if (_memory.open() != Error::OK) + { + throw "Shared memory queue could not be opened."; + } + + // Read queue metadata + _capacity = readUInt32(kCapacityOffset); + _maxMessageSize = readUInt32(kMaxMessageSizeOffset); + } + } + + [[nodiscard]] bool isEmpty() const noexcept + { + return readUInt32(kCountOffset) == 0; + } + + [[nodiscard]] bool isFull() const noexcept + { + return readUInt32(kCountOffset) >= _capacity; + } + + [[nodiscard]] std::uint32_t size() const noexcept + { + return readUInt32(kCountOffset); + } + + [[nodiscard]] std::uint32_t capacity() const noexcept + { + return _capacity; + } + + /** + * @brief Enqueue a message (writer only) + * @param message Message to enqueue + * @return true if message was enqueued, false if queue is full + */ + bool enqueue(std::string_view message) + { + if (!_isWriter) + { + throw "Cannot enqueue from a reader queue instance."; + } + + if (message.size() > _maxMessageSize) + { + throw "Message exceeds maximum message size."; + } + + if (isFull()) + { + return false; + } + + const std::uint32_t writeIndex = readUInt32(kWriteIndexOffset); + const std::size_t offset = getMessageOffset(writeIndex); + + auto memory = static_cast(_memory.data()); + + // Write message length + const auto messageLength = static_cast(message.size()); + std::memcpy(&memory[offset], &messageLength, sizeof(std::uint32_t)); + + // Write message data + std::memcpy(&memory[offset + sizeof(std::uint32_t)], message.data(), messageLength); + + // Update write index (circular) + const std::uint32_t newWriteIndex = (writeIndex + 1) % _capacity; + writeUInt32(kWriteIndexOffset, newWriteIndex); + + // Increment count + const std::uint32_t count = readUInt32(kCountOffset); + writeUInt32(kCountOffset, count + 1); + + return true; + } + + /** + * @brief Dequeue a message (reader only) + * @param message Output parameter for dequeued message + * @return true if message was dequeued, false if queue is empty + */ + bool dequeue(std::string& message) + { + if (_isWriter) + { + throw "Cannot dequeue from a writer queue instance."; + } + + if (isEmpty()) + { + return false; + } + + const std::uint32_t readIndex = readUInt32(kReadIndexOffset); + const std::size_t offset = getMessageOffset(readIndex); + + const auto memory = static_cast(_memory.data()); + + // Read message length + std::uint32_t messageLength = 0; + std::memcpy(&messageLength, &memory[offset], sizeof(std::uint32_t)); + + // Read message data + message.resize(messageLength); + std::memcpy(&message[0], &memory[offset + sizeof(std::uint32_t)], messageLength); + + // Update read index (circular) + const std::uint32_t newReadIndex = (readIndex + 1) % _capacity; + writeUInt32(kReadIndexOffset, newReadIndex); + + // Decrement count + const std::uint32_t count = readUInt32(kCountOffset); + writeUInt32(kCountOffset, count - 1); + + return true; + } + + /** + * @brief Peek at the next message without dequeuing (reader only) + * @param message Output parameter for peeked message + * @return true if message was peeked, false if queue is empty + */ + bool peek(std::string& message) const + { + if (_isWriter) + { + throw "Cannot peek from a writer queue instance."; + } + + if (isEmpty()) + { + return false; + } + + const std::uint32_t readIndex = readUInt32(kReadIndexOffset); + const std::size_t offset = getMessageOffset(readIndex); + + const auto memory = static_cast(_memory.data()); + + // Read message length + std::uint32_t messageLength = 0; + std::memcpy(&messageLength, &memory[offset], sizeof(std::uint32_t)); + + // Read message data + message.resize(messageLength); + std::memcpy(&message[0], &memory[offset + sizeof(std::uint32_t)], messageLength); + + return true; + } + + void close() + { + _memory.close(); + } + + void destroy() const + { + _memory.destroy(); + } +}; + }; // namespace lsm diff --git a/test/test.cc b/test/test.cc index 14f2697..64d9bde 100644 --- a/test/test.cc +++ b/test/test.cc @@ -6,6 +6,10 @@ #include #include #include +#include +#include +#include +#include using namespace std; using namespace lsm; @@ -33,7 +37,7 @@ const lest::test specification[] = EXPECT(Error::OK == memoryReader.open()); - log_test_message("single uint8_t: SUCCESS"); + log_test_message("single uint8_t: SUCCESS"); EXPECT(0x11 == ((uint8_t*)memoryReader.data())[0]); EXPECT(0x34 == ((uint8_t *)memoryReader.data())[1]); @@ -46,7 +50,7 @@ const lest::test specification[] = { Memory memoryReader{"lsmtest2", 64, true}; EXPECT(Error::OpeningFailed == memoryReader.open()); - log_test_message("error when opening non-existing segment: SUCCESS"); + log_test_message("error when opening non-existing segment: SUCCESS"); }, CASE("using MemoryStreamWriter and MemoryStreamReader to transfer std::string") @@ -60,9 +64,9 @@ const lest::test specification[] = const std::string dataString = read$.readString(); - std::ostringstream msg; - msg << "std::string (UTF8): SUCCESS | " << dataString; - log_test_message(msg.str()); + std::ostringstream msg; + msg << "std::string (UTF8): SUCCESS | " << dataString; + log_test_message(msg.str()); EXPECT(dataToTransfer == dataString); @@ -90,7 +94,7 @@ const lest::test specification[] = write$.close(); read$.close(); } - log_test_message("std::string more/less: SUCCESS; 1000 runs"); + log_test_message("std::string more/less: SUCCESS; 1000 runs"); }, CASE("Write a lot") @@ -111,7 +115,7 @@ const lest::test specification[] = EXPECT(blob == dataString); - log_test_message("std::string blob: SUCCESS"); + log_test_message("std::string blob: SUCCESS"); }, CASE("Can read flags, sets the right datatype and data change bit flips") @@ -129,15 +133,15 @@ const lest::test specification[] = EXPECT(!!(flagsData & kMemoryTypeString)); - std::ostringstream statusMsg; - statusMsg << "status flag shows string data type flag: SUCCESS: 0b" << flags; - log_test_message(statusMsg.str()); + std::ostringstream statusMsg; + statusMsg << "status flag shows string data type flag: SUCCESS: 0b" << flags; + log_test_message(statusMsg.str()); EXPECT(!!(flagsData & kMemoryChanged)); - std::ostringstream changeMsg; - changeMsg << "status flag has the change bit set: SUCCESS: 0b" << flags; - log_test_message(changeMsg.str()); + std::ostringstream changeMsg; + changeMsg << "status flag has the change bit set: SUCCESS: 0b" << flags; + log_test_message(changeMsg.str()); write$.write("foo!"); @@ -200,7 +204,7 @@ const lest::test specification[] = EXPECT(numbers[3] == numbersReadPtr[3]); EXPECT(numbers[71] == numbersReadPtr[71]); - log_test_message("float[72]: SUCCESS"); + log_test_message("float[72]: SUCCESS"); write$.write(numbers, 72); @@ -276,7 +280,7 @@ const lest::test specification[] = EXPECT(numbers[3] == numbersReadPtr[3]); EXPECT(numbers[71] == numbersReadPtr[71]); - log_test_message("double[72]: SUCCESS"); + log_test_message("double[72]: SUCCESS"); write$.write(numbers, 72); @@ -324,7 +328,7 @@ const lest::test specification[] = EXPECT(0xAB == readBytes[0]); EXPECT(0xCD == readBytes[1]); - log_test_message("Persistent segment reopened with data intact: SUCCESS"); + log_test_message("Persistent segment reopened with data intact: SUCCESS"); reader.close(); reader.destroy(); @@ -344,7 +348,7 @@ const lest::test specification[] = Memory reopen{pipeName, 128, false}; EXPECT(Error::OpeningFailed == reopen.open()); - log_test_message("Ephemeral segment removed after destruction: SUCCESS"); + log_test_message("Ephemeral segment removed after destruction: SUCCESS"); }, CASE("Shared memory streams handle empty strings") @@ -360,12 +364,362 @@ const lest::test specification[] = EXPECT(0UL == reader.readLength(kMemoryTypeString)); EXPECT(emptyValue == reader.readString()); - log_test_message("Empty string round-trip through shared memory: SUCCESS"); + log_test_message("Empty string round-trip through shared memory: SUCCESS"); writer.close(); reader.close(); writer.destroy(); }, + CASE("Multiple read, one write") + { + const std::string pipeName = "multiReadPipe"; + + SharedMemoryWriteStream writer{pipeName, 128, true}; + SharedMemoryReadStream reader1{pipeName, 128, true}; + + const std::string message = "Hello, readers!"; + writer.write(message); + + EXPECT(message == reader1.readString()); + EXPECT(message == reader1.readString()); + + log_test_message("Multiple readers read the same data: SUCCESS"); + + writer.close(); + reader1.close(); + writer.destroy(); + }, + + CASE("Writer sends messages, reader consumes them") + { + const std::string pipeName = "messagePipe"; + + SharedMemoryWriteStream writer{pipeName, 256, true}; + SharedMemoryReadStream reader{pipeName, 256, true}; + + // Initially there should be no data available + EXPECT(!reader.hasNewData()); + EXPECT(writer.isMessageRead()); + + // Writer publishes first message + const std::string msg1 = "First message"; + writer.write(msg1); + + // Message should not be marked as read yet + EXPECT(!writer.isMessageRead()); + + // Reader should detect new data available + EXPECT(reader.hasNewData()); + + // Reader consumes the message + std::string read1 = reader.readString(); + EXPECT(msg1 == read1); + reader.markAsRead(); + + // After consumption, no new data should be available + EXPECT(!reader.hasNewData()); + EXPECT(writer.isMessageRead()); + + // Reading again should return same content but not be marked as "new" + std::string read1Again = reader.readString(); + EXPECT(msg1 == read1Again); + EXPECT(!reader.hasNewData()); + + // Writer waits for previous message to be consumed before writing next + writer.waitForRead(); + + // Writer publishes second message + const std::string msg2 = "Second message"; + writer.write(msg2); + + EXPECT(!writer.isMessageRead()); + + // New data should be available again + EXPECT(reader.hasNewData()); + + // Reader consumes second message + std::string read2 = reader.readString(); + EXPECT(msg2 == read2); + reader.markAsRead(); + + // No new data after consumption + EXPECT(!reader.hasNewData()); + EXPECT(writer.isMessageRead()); + + // Writer waits before publishing third message + writer.waitForRead(); + + // Writer publishes third message + const std::string msg3 = "Third message 🚀"; + writer.write(msg3); + + EXPECT(!writer.isMessageRead()); + EXPECT(reader.hasNewData()); + + // Reader consumes third message + std::string read3 = reader.readString(); + EXPECT(msg3 == read3); + reader.markAsRead(); + + EXPECT(!reader.hasNewData()); + EXPECT(writer.isMessageRead()); + + log_test_message("Writer sends messages, reader consumes them: SUCCESS"); + + writer.close(); + reader.close(); + writer.destroy(); + }, + + CASE("SharedMemoryQueue: Writer enqueues multiple messages, reader dequeues in FIFO order") + { + const std::string queueName = "testQueue"; + const std::uint32_t capacity = 10; + const std::uint32_t maxMessageSize = 256; + + SharedMemoryQueue writer{queueName, capacity, maxMessageSize, true, true}; + SharedMemoryQueue reader{queueName, capacity, maxMessageSize, true, false}; + + // Initially queue should be empty + EXPECT(writer.isEmpty()); + EXPECT(reader.isEmpty()); + EXPECT(writer.size() == 0); + EXPECT(reader.capacity() == capacity); + + // Writer enqueues multiple messages + EXPECT(writer.enqueue("First message")); + EXPECT(writer.enqueue("Second message")); + EXPECT(writer.enqueue("Third message")); + EXPECT(writer.enqueue("Fourth message")); + EXPECT(writer.enqueue("Fifth message")); + + // Check queue state + EXPECT(!writer.isEmpty()); + EXPECT(writer.size() == 5); + EXPECT(!writer.isFull()); + + // Reader sees the same state + EXPECT(!reader.isEmpty()); + EXPECT(reader.size() == 5); + + // Reader dequeues messages in FIFO order + std::string msg; + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "First message"); + EXPECT(reader.size() == 4); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Second message"); + EXPECT(reader.size() == 3); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Third message"); + EXPECT(reader.size() == 2); + + // Writer continues to enqueue while reader dequeues + EXPECT(writer.enqueue("Sixth message")); + EXPECT(writer.enqueue("Seventh message")); + EXPECT(writer.size() == 4); + + // Reader dequeues old messages first + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Fourth message"); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Fifth message"); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Sixth message"); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Seventh message"); + + // Queue should be empty now + EXPECT(reader.isEmpty()); + EXPECT(writer.isEmpty()); + + // Dequeuing from empty queue should return false + EXPECT(!reader.dequeue(msg)); + + log_test_message("SharedMemoryQueue: FIFO message queue: SUCCESS"); + + writer.close(); + reader.close(); + writer.destroy(); + }, + + CASE("SharedMemoryQueue: Queue full behavior") + { + const std::string queueName = "fullQueue"; + const std::uint32_t capacity = 3; + const std::uint32_t maxMessageSize = 64; + + SharedMemoryQueue writer{queueName, capacity, maxMessageSize, true, true}; + SharedMemoryQueue reader{queueName, capacity, maxMessageSize, true, false}; + + // Fill the queue + EXPECT(writer.enqueue("Message 1")); + EXPECT(writer.enqueue("Message 2")); + EXPECT(writer.enqueue("Message 3")); + + EXPECT(writer.isFull()); + EXPECT(writer.size() == capacity); + + // Attempt to enqueue when full should fail + EXPECT(!writer.enqueue("Message 4")); + + // Dequeue one message + std::string msg; + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Message 1"); + + // Now we can enqueue again + EXPECT(!writer.isFull()); + EXPECT(writer.enqueue("Message 4")); + + // Dequeue remaining messages + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Message 2"); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Message 3"); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Message 4"); + + EXPECT(reader.isEmpty()); + + log_test_message("SharedMemoryQueue: Queue full behavior: SUCCESS"); + + writer.close(); + reader.close(); + writer.destroy(); + }, + + CASE("SharedMemoryQueue: Peek without dequeuing") + { + const std::string queueName = "peekQueue"; + const std::uint32_t capacity = 5; + const std::uint32_t maxMessageSize = 128; + + SharedMemoryQueue writer{queueName, capacity, maxMessageSize, true, true}; + SharedMemoryQueue reader{queueName, capacity, maxMessageSize, true, false}; + + // Enqueue messages + EXPECT(writer.enqueue("First")); + EXPECT(writer.enqueue("Second")); + EXPECT(writer.enqueue("Third")); + + std::string msg; + + // Peek at first message multiple times + EXPECT(reader.peek(msg)); + EXPECT(msg == "First"); + EXPECT(reader.size() == 3); // Size unchanged + + EXPECT(reader.peek(msg)); + EXPECT(msg == "First"); + EXPECT(reader.size() == 3); + + // Dequeue first message + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "First"); + EXPECT(reader.size() == 2); + + // Peek at second message + EXPECT(reader.peek(msg)); + EXPECT(msg == "Second"); + + // Dequeue all remaining + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Second"); + + EXPECT(reader.dequeue(msg)); + EXPECT(msg == "Third"); + + // Peek on empty queue should fail + EXPECT(!reader.peek(msg)); + EXPECT(reader.isEmpty()); + + log_test_message("SharedMemoryQueue: Peek functionality: SUCCESS"); + + writer.close(); + reader.close(); + writer.destroy(); + }, + + CASE("SharedMemoryQueue: Multithread producer-consumer") + { + const std::string queueName = "mtQueue1"; + constexpr std::uint32_t capacity = 20; + constexpr std::uint32_t maxMessageSize = 128; + + SharedMemoryQueue writer{queueName, capacity, maxMessageSize, true, true}; + + constexpr int numMessages = 100; + std::atomic messagesProduced{0}; + std::atomic messagesConsumed{0}; + std::atomic producerDone{false}; + + // Producer thread + std::thread producer([&]() + { + for (int i = 0; i < numMessages; ++i) + { + std::string msg = "Message " + std::to_string(i); + while (!writer.enqueue(msg)) + { + // Queue full, wait a bit + std::this_thread::sleep_for(std::chrono::microseconds(10)); + } + ++messagesProduced; + } + producerDone = true; + }); + + // Consumer thread + std::thread consumer([&]() + { + SharedMemoryQueue reader{queueName, capacity, maxMessageSize, true, false}; + + while (messagesConsumed < numMessages) + { + if (std::string msg; reader.dequeue(msg)) + { + // Verify message format (with single producer, FIFO order should be maintained) + EXPECT(msg.find("Message ") == 0); + ++messagesConsumed; + } + else + { + // Queue empty, wait a bit + std::this_thread::sleep_for(std::chrono::microseconds(10)); + } + } + + reader.close(); + }); + + producer.join(); + consumer.join(); + + EXPECT(messagesProduced == numMessages); + EXPECT(messagesConsumed == numMessages); + EXPECT(writer.isEmpty()); + + log_test_message("SharedMemoryQueue: Multithread producer-consumer: SUCCESS"); + + writer.close(); + writer.destroy(); + } + + // NOTE: Multiple concurrent producers accessing the same SharedMemoryQueue instance + // requires additional synchronization (mutex or atomic operations) to prevent race + // conditions. The current implementation works well for: + // - Single producer, single consumer + // - Single producer, multiple consumers (read-only operations) + // Future work: Add atomic operations for truly lock-free multiple producer support }; int main (const int argc, char *argv[]) From dd3679c47a8d21844a73fcb27216b0d402d5e093 Mon Sep 17 00:00:00 2001 From: salvatore rivieccio Date: Wed, 5 Nov 2025 12:41:43 +0100 Subject: [PATCH 29/41] refactor: replace string literals with std::runtime_error in shared memory error handling --- include/libsharedmemory/libsharedmemory.hpp | 15 ++++++++------- test/test.cc | 5 ++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index fe96c06..816807f 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -12,6 +12,7 @@ #include #include #include +#include #if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) #include // O_* constants @@ -423,7 +424,7 @@ class SharedMemoryReadStream { if (_memory.open() != Error::OK) { - throw "Shared memory segment could not be opened."; + throw std::runtime_error("Shared memory segment could not be opened."); } } @@ -538,7 +539,7 @@ class SharedMemoryWriteStream { if (_memory.create() != Error::OK) { - throw "Shared memory segment could not be created."; + throw std::runtime_error("Shared memory segment could not be created."); } } @@ -586,7 +587,7 @@ class SharedMemoryWriteStream if (string.size() > std::numeric_limits::max()) { - throw "String payload exceeds maximum shared memory size."; + throw std::runtime_error("String payload exceeds maximum shared memory size."); } // 1) copy change flag into buffer for change detection @@ -638,7 +639,7 @@ class SharedMemoryWriteStream if (length > 0 && length > (std::numeric_limits::max() / sizeof(T))) { - throw "Numeric payload exceeds maximum shared memory size."; + throw std::runtime_error("Numeric payload exceeds maximum shared memory size."); } const auto memory = static_cast(_memory.data()); @@ -713,7 +714,7 @@ class SharedMemoryQueue { if (_memory.create() != Error::OK) { - throw "Shared memory queue could not be created."; + throw std::runtime_error("Shared memory queue could not be created."); } // Initialize queue metadata @@ -727,7 +728,7 @@ class SharedMemoryQueue { if (_memory.open() != Error::OK) { - throw "Shared memory queue could not be opened."; + throw std::runtime_error("Shared memory queue could not be opened."); } // Read queue metadata @@ -851,7 +852,7 @@ class SharedMemoryQueue { if (_isWriter) { - throw "Cannot peek from a writer queue instance."; + throw std::runtime_error("Cannot peek from a writer queue instance."); } if (isEmpty()) diff --git a/test/test.cc b/test/test.cc index 64d9bde..a74d6e8 100644 --- a/test/test.cc +++ b/test/test.cc @@ -655,7 +655,7 @@ const lest::test specification[] = constexpr std::uint32_t capacity = 20; constexpr std::uint32_t maxMessageSize = 128; - SharedMemoryQueue writer{queueName, capacity, maxMessageSize, true, true}; + SharedMemoryQueue writer{queueName, capacity, maxMessageSize, false, true}; constexpr int numMessages = 100; std::atomic messagesProduced{0}; @@ -681,7 +681,7 @@ const lest::test specification[] = // Consumer thread std::thread consumer([&]() { - SharedMemoryQueue reader{queueName, capacity, maxMessageSize, true, false}; + SharedMemoryQueue reader{queueName, capacity, maxMessageSize, false, false}; while (messagesConsumed < numMessages) { @@ -711,7 +711,6 @@ const lest::test specification[] = log_test_message("SharedMemoryQueue: Multithread producer-consumer: SUCCESS"); writer.close(); - writer.destroy(); } // NOTE: Multiple concurrent producers accessing the same SharedMemoryQueue instance From 8b789e76811a99c82f4ccc61a3fdefb1e8512817 Mon Sep 17 00:00:00 2001 From: salvatore rivieccio Date: Wed, 5 Nov 2025 14:13:10 +0100 Subject: [PATCH 30/41] refactor: improve error handling with std::runtime_error and enhance SharedMemoryQueue initialization --- include/libsharedmemory/libsharedmemory.hpp | 16 +++++++++++++--- test/test.cc | 5 +++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 816807f..b001f83 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -180,6 +180,8 @@ Error Memory::createOrOpen(const bool create) _persistFilePath = lsm_windows_detail::persistence_file_path(_path); } + // OPEN_ALWAYS: Opens if exists, creates if not - allows for persistent reuse + // CREATE_ALWAYS: Always creates new, truncating existing - forces fresh start const DWORD disposition = create ? CREATE_ALWAYS : OPEN_EXISTING; HANDLE fileHandle = CreateFileA(_persistFilePath.c_str(), GENERIC_READ | GENERIC_WRITE, @@ -197,6 +199,7 @@ Error Memory::createOrOpen(const bool create) LARGE_INTEGER requiredSize; requiredSize.QuadPart = static_cast(_size); + // Always resize to required size in create mode to ensure proper initialization bool resizeFile = create; if (!create) { @@ -236,6 +239,8 @@ Error Memory::createOrOpen(const bool create) { if (create) { + // For ephemeral memory, try to create with the name + // If it already exists, we'll get a handle to the existing one _handle = CreateFileMappingA(INVALID_HANDLE_VALUE, // use paging file NULL, // default security PAGE_READWRITE, // read/write access @@ -246,6 +251,11 @@ Error Memory::createOrOpen(const bool create) { return Error::CreationFailed; } + + // Check if we opened an existing mapping (can happen in multi-process scenarios) + // If GetLastError() returns ERROR_ALREADY_EXISTS, the mapping already existed + // For ephemeral memory in create mode, this is typically fine since the + // destructor will clean it up when all processes are done } else { @@ -766,12 +776,12 @@ class SharedMemoryQueue { if (!_isWriter) { - throw "Cannot enqueue from a reader queue instance."; + throw std::runtime_error("Cannot enqueue from a reader queue instance."); } if (message.size() > _maxMessageSize) { - throw "Message exceeds maximum message size."; + throw std::runtime_error("Message exceeds maximum message size."); } if (isFull()) @@ -811,7 +821,7 @@ class SharedMemoryQueue { if (_isWriter) { - throw "Cannot dequeue from a writer queue instance."; + throw std::runtime_error("Cannot dequeue from a writer queue instance."); } if (isEmpty()) diff --git a/test/test.cc b/test/test.cc index a74d6e8..64d9bde 100644 --- a/test/test.cc +++ b/test/test.cc @@ -655,7 +655,7 @@ const lest::test specification[] = constexpr std::uint32_t capacity = 20; constexpr std::uint32_t maxMessageSize = 128; - SharedMemoryQueue writer{queueName, capacity, maxMessageSize, false, true}; + SharedMemoryQueue writer{queueName, capacity, maxMessageSize, true, true}; constexpr int numMessages = 100; std::atomic messagesProduced{0}; @@ -681,7 +681,7 @@ const lest::test specification[] = // Consumer thread std::thread consumer([&]() { - SharedMemoryQueue reader{queueName, capacity, maxMessageSize, false, false}; + SharedMemoryQueue reader{queueName, capacity, maxMessageSize, true, false}; while (messagesConsumed < numMessages) { @@ -711,6 +711,7 @@ const lest::test specification[] = log_test_message("SharedMemoryQueue: Multithread producer-consumer: SUCCESS"); writer.close(); + writer.destroy(); } // NOTE: Multiple concurrent producers accessing the same SharedMemoryQueue instance From 5d851af561b290984e1f24a90c3d3b9347c5e7ef Mon Sep 17 00:00:00 2001 From: salvatore rivieccio Date: Wed, 5 Nov 2025 14:18:52 +0100 Subject: [PATCH 31/41] refactor: enhance SharedMemoryQueue with atomic count management for thread safety --- include/libsharedmemory/libsharedmemory.hpp | 34 +++++++++++++-------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index b001f83..0a9bac7 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -13,6 +13,7 @@ #include #include #include +#include // added for atomic queue counters #if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) #include // O_* constants @@ -93,7 +94,7 @@ class Memory [[nodiscard]] std::span as_bytes() const noexcept { - return std::span(static_cast(_data), _size); + return {static_cast(_data), _size}; } void destroy() const; @@ -369,7 +370,7 @@ inline Error Memory::createOrOpen(const bool create) { // this is the only way to specify the size of a // newly-created POSIX shared memory object - const int ret = ftruncate(_fd, _size); + const int ret = ftruncate(_fd, static_cast(_size)); if (ret != 0) { return Error::CreationFailed; @@ -530,7 +531,7 @@ class SharedMemoryReadStream { const auto memory = static_cast(_memory.data()); const std::size_t byteSize = readSize(typeFlag); - const std::size_t length = elementSize == 0 ? 0 : byteSize / elementSize; + const std::size_t length = byteSize / elementSize; auto data = new T[length](); std::memcpy(data, &memory[flagSize + bufferSizeSize], byteSize); @@ -704,6 +705,13 @@ class SharedMemoryQueue return kHeaderSize + index * (_maxMessageSize + sizeof(std::uint32_t)); } + // Helper to access atomic count field in shared memory + [[nodiscard]] std::atomic& atomicCount() const noexcept + { + auto memory = static_cast(_memory.data()); + return *reinterpret_cast*>(&memory[kCountOffset]); + } + public: /** * @brief Create or open a shared memory queue @@ -731,7 +739,9 @@ class SharedMemoryQueue writeUInt32(kWriteIndexOffset, 0); writeUInt32(kReadIndexOffset, 0); writeUInt32(kCapacityOffset, capacity); - writeUInt32(kCountOffset, 0); + // construct atomic count with placement new to ensure proper atomic object initialization + auto memory = static_cast(_memory.data()); + new (&memory[kCountOffset]) std::atomic(0); writeUInt32(kMaxMessageSizeOffset, maxMessageSize); } else @@ -749,17 +759,17 @@ class SharedMemoryQueue [[nodiscard]] bool isEmpty() const noexcept { - return readUInt32(kCountOffset) == 0; + return atomicCount().load(std::memory_order_acquire) == 0; } [[nodiscard]] bool isFull() const noexcept { - return readUInt32(kCountOffset) >= _capacity; + return atomicCount().load(std::memory_order_acquire) >= _capacity; } [[nodiscard]] std::uint32_t size() const noexcept { - return readUInt32(kCountOffset); + return atomicCount().load(std::memory_order_acquire); } [[nodiscard]] std::uint32_t capacity() const noexcept @@ -805,9 +815,8 @@ class SharedMemoryQueue const std::uint32_t newWriteIndex = (writeIndex + 1) % _capacity; writeUInt32(kWriteIndexOffset, newWriteIndex); - // Increment count - const std::uint32_t count = readUInt32(kCountOffset); - writeUInt32(kCountOffset, count + 1); + // atomic increment of count + atomicCount().fetch_add(1, std::memory_order_release); return true; } @@ -846,9 +855,8 @@ class SharedMemoryQueue const std::uint32_t newReadIndex = (readIndex + 1) % _capacity; writeUInt32(kReadIndexOffset, newReadIndex); - // Decrement count - const std::uint32_t count = readUInt32(kCountOffset); - writeUInt32(kCountOffset, count - 1); + // atomic decrement of count + atomicCount().fetch_sub(1, std::memory_order_release); return true; } From 60a280808c6a93491c679630bb2b8ffd335c0b39 Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Fri, 6 Feb 2026 10:31:22 +0100 Subject: [PATCH 32/41] feat: add GetSystemStorageDirectory function to manage shared memory storage path --- include/libsharedmemory/libsharedmemory.hpp | 29 +++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index fe96c06..bd14d22 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -28,6 +28,7 @@ #undef min #undef max #undef WIN32_LEAN_AND_MEAN +#include #endif namespace lsm @@ -92,7 +93,7 @@ class Memory [[nodiscard]] std::span as_bytes() const noexcept { - return std::span(static_cast(_data), _size); + return {static_cast(_data), _size}; } void destroy() const; @@ -124,6 +125,30 @@ class Memory namespace lsm_windows_detail { + inline std::string GetSystemStorageDirectory() + { + char* programData = nullptr; + size_t len = 0; + if (_dupenv_s(&programData, &len, "PROGRAMDATA") == 0 && programData != nullptr) + { + std::filesystem::path storagePath = std::filesystem::path(programData) / "shared_memory"; + free(programData); + + // Create directory if it doesn't exist + std::error_code ec; + std::filesystem::create_directories(storagePath, ec); + if (ec) + { + // Directory creation failed + return {}; + } + + return storagePath.string(); + } + // If PROGRAMDATA is not set, return empty string + return {}; + } + inline std::string sanitize_name(const std::string& name) { std::string sanitized = name; @@ -142,7 +167,7 @@ namespace lsm_windows_detail inline std::string persistence_file_path(const std::string& name) { char buffer[MAX_PATH] = {0}; - const DWORD pathLength = GetTempPathA(static_cast(sizeof(buffer)), buffer); + const DWORD pathLength = GetSystemStorageDirectory(); std::string basePath(buffer, buffer + pathLength); if (!basePath.empty()) { From 625535274d77673bc4fa0f4b069ac542bc8d7ace Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Fri, 6 Feb 2026 10:39:54 +0100 Subject: [PATCH 33/41] refactor: simplify persistence_file_path function by using GetSystemStorageDirectory directly --- include/libsharedmemory/libsharedmemory.hpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index bd14d22..66c7fab 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 5 +#define LIBSHAREDMEMORY_VERSION_MINOR 6 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -29,6 +29,7 @@ #undef max #undef WIN32_LEAN_AND_MEAN #include +#include #endif namespace lsm @@ -166,13 +167,11 @@ namespace lsm_windows_detail inline std::string persistence_file_path(const std::string& name) { - char buffer[MAX_PATH] = {0}; - const DWORD pathLength = GetSystemStorageDirectory(); - std::string basePath(buffer, buffer + pathLength); + std::string basePath = GetSystemStorageDirectory(); if (!basePath.empty()) { - const char last = basePath[basePath.size() - 1]; - if (last != '\\' && last != '/') + if (const char last = basePath[basePath.size() - 1]; + last != '\\' && last != '/') { basePath.push_back('\\'); } From e86e81583c7b6fa42d7cd01386218c63fa39000e Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Fri, 6 Feb 2026 15:33:14 +0100 Subject: [PATCH 34/41] feat: add CHANGELOG.md for version 1.7.0 and update README.md with new features --- CHANGELOG.md | 39 +++++++++++ README.md | 67 ++++++++++++++---- include/libsharedmemory/libsharedmemory.hpp | 76 ++++++++++++++++++++- 3 files changed, 169 insertions(+), 13 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0879f57 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.7.0] - 2026-02-06 + +### Added +- **SharedMemoryQueue**: New FIFO message queue functionality for inter-process communication + - Thread-safe enqueue/dequeue operations using atomic counters + - Configurable capacity and maximum message size + - `peek()` method to inspect messages without removing them + - Status methods: `isEmpty()`, `isFull()`, `size()`, `capacity()` + - Supports single producer/single consumer and single producer/multiple consumers patterns +- Windows persistency support for shared memory segments + - Persistent file-backed shared memory on Windows using `%PROGRAMDATA%/shared_memory/` directory + - Automatic directory creation and permission management on Windows + - Configurable persistence with `persist` parameter in constructor + +### Changed +- Updated C++20 requirements with `std::atomic` support for queue operations +- Improved memory layout with atomic operations for queue counters +- Enhanced Windows implementation with better file handle management + +### Fixed +- Memory leak prevention in queue implementation +- Proper cleanup of shared memory on all platforms + +## Previous Versions + +Prior to version 1.7.0, the library supported: +- Basic shared memory creation and access on Windows, Linux, and macOS +- Stream-based data transfer with `SharedMemoryWriteStream` and `SharedMemoryReadStream` +- Support for `std::string`, `float*`, and `double*` array types +- Change detection with flag bit flipping +- Single value access via `.data()[index]` API + diff --git a/README.md b/README.md index 37789eb..9522f9a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # `libsharedmemory` -`libsharedmemory` is a small C++20 header-only library for using shared memory on Windows, Linux and macOS. `libsharedmemory` makes it easy to transfer data between isolated host OS processes. It also helps inter-connecting modules of applications that are implemented in different programming languages. It allows for simple read/write data transfer using single, indexed memory address access and also using array-types like `std::string`, `float*`, `double*`. +`libsharedmemory` is a small C++20 header-only library for using shared memory on Windows, Linux and macOS. `libsharedmemory` makes it easy to transfer data between isolated host OS processes. It also helps inter-connecting modules of applications that are implemented in different programming languages. It supports: + +- Simple read/write data transfer using single, indexed memory address access +- Array-types like `std::string`, `float*`, `double*` +- Message queue functionality with `SharedMemoryQueue` for FIFO communication @@ -28,6 +32,34 @@ std::string dataString = read$.readString(); std::cout << "UTF8 string written and read" << dataString << std::endl; ``` +### Message Queue Example + +```cpp +// Create a message queue with capacity for 10 messages, max 256 bytes each +SharedMemoryQueue writer{"messageQueue", /*capacity*/ 10, /*maxMessageSize*/ 256, /*persistent*/ true, /*isWriter*/ true}; +SharedMemoryQueue reader{"messageQueue", /*capacity*/ 10, /*maxMessageSize*/ 256, /*persistent*/ true, /*isWriter*/ false}; + +// Enqueue messages from writer +writer.enqueue("First message"); +writer.enqueue("Second message"); + +// Dequeue messages from reader +std::string msg; +if (reader.dequeue(msg)) { + std::cout << "Received: " << msg << std::endl; +} + +// Peek at next message without removing it +if (reader.peek(msg)) { + std::cout << "Next message: " << msg << std::endl; +} + +// Check queue status +std::cout << "Queue size: " << reader.size() << std::endl; +std::cout << "Is empty: " << reader.isEmpty() << std::endl; +std::cout << "Is full: " << reader.isFull() << std::endl; +``` + ## Source code package management via `npm` In case you want to use this library in your codebase, @@ -45,27 +77,38 @@ reports that are announced when running `npm audit`. Finally, it's also much easier for you to install all project dependencies by just running `npm install` in your projects root directory. Managing third party code becomes obsolete at all. -## Limits +## Features -`libsharedmemory` does only support the following datatypes (array-like): -- `std::string` -- `float*` -- `double*` +### Stream-based Transfer +`libsharedmemory` supports the following datatypes for stream-based transfer: +- `std::string` (UTF-8 compatible) +- `float*` (arrays of floats) +- `double*` (arrays of doubles) Single value access via `.data()[index]` API: - all scalar datatypes supported in C/C++ -- This library doesn't care for endinanness. This should be naturally fine +### Message Queue +`SharedMemoryQueue` provides FIFO message queue functionality: +- Thread-safe enqueue/dequeue operations +- Configurable capacity and maximum message size +- Peek functionality to inspect messages without removing them +- Suitable for single producer, single consumer or single producer, multiple consumers patterns + +## Limits + +- This library doesn't care for endianness. This should be naturally fine because shared memory shouldn't be shared between different machine architectures. However, if you plan to copy the shared buffer onto a -network layer prototcol, make sure to add an endianess indication bit. +network layer protocol, make sure to add an endianness indication bit. - Although the binary memory layout should give you no headache when compiling/linking using different compilers, the behavior is undefined. -- At the time of writing, there is no support for shared memory persistency -on Windows. Shared memory is lost after the writing process is killed. +- **SharedMemoryQueue** currently works best for single producer, single consumer +or single producer, multiple consumers scenarios. Multiple concurrent producers +require additional external synchronization. ## Memory layout @@ -98,5 +141,5 @@ to catch every data change. ## Roadmap -1) Windows shared memory persistency support -2) Multi-threaded non-blocking `onChange( lambda fn )` data change handler on the read stream \ No newline at end of file +1) Multi-threaded non-blocking `onChange( lambda fn )` data change handler on the read stream +2) Support for multiple concurrent producers in SharedMemoryQueue with lock-free atomic operations diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 6b33357..1545c31 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 6 +#define LIBSHAREDMEMORY_VERSION_MINOR 7 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -27,6 +27,8 @@ #define NOMINMAX 1 #endif #include +#include +#include #undef min #undef max #undef WIN32_LEAN_AND_MEAN @@ -128,6 +130,74 @@ class Memory namespace lsm_windows_detail { + constexpr std::size_t MAX_FS_PATH = 1024; + constexpr int UTIL_PERM_READ = 4; + constexpr int UTIL_PERM_WRITE = 2; + constexpr int UTIL_PERM_EXECUTE = 1; + + inline bool AssignPermissionsToFilesystemPath(const std::string path, int permissionsBitMask) + { + //for simplicity, creator will always have full permissions, + //while group and others will be assigned the same permissions based on the bitmask + char buffer[MAX_FS_PATH] = { 0 }; + PSID usersSid = nullptr; + + if (path.empty() || path.size() >= MAX_FS_PATH) + return false; + + if (!(permissionsBitMask & (UTIL_PERM_READ | UTIL_PERM_WRITE | UTIL_PERM_EXECUTE))) + { + return false; + } + + strcpy_s(buffer, sizeof(buffer), path.c_str()); + + if (!ConvertStringSidToSidA("S-1-5-32-545", &usersSid)) //built-in Users + return false; + + EXPLICIT_ACCESSA accessPermissions = {}; + + accessPermissions.grfAccessPermissions = 0; + + if (permissionsBitMask & UTIL_PERM_READ) + { + accessPermissions.grfAccessPermissions |= FILE_GENERIC_READ; + } + + if (permissionsBitMask & UTIL_PERM_WRITE) + { + accessPermissions.grfAccessPermissions |= FILE_GENERIC_WRITE; + accessPermissions.grfAccessPermissions |= DELETE; // this is the natural place to put this if needed later + } + + if (permissionsBitMask & UTIL_PERM_EXECUTE) + { + accessPermissions.grfAccessPermissions |= FILE_GENERIC_EXECUTE; + } + + accessPermissions.grfAccessMode = GRANT_ACCESS; + accessPermissions.grfInheritance = SUB_CONTAINERS_AND_OBJECTS_INHERIT; + accessPermissions.Trustee.TrusteeForm = TRUSTEE_IS_SID; + accessPermissions.Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP; + accessPermissions.Trustee.ptstrName = (LPCH)usersSid; + + PACL acl = nullptr; + DWORD result = SetEntriesInAclA(1, &accessPermissions, nullptr, &acl); + + if (result != ERROR_SUCCESS) + { + LocalFree(usersSid); + return false; + } + + result = SetNamedSecurityInfoA(buffer, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, acl, NULL); + + LocalFree(usersSid); + LocalFree(acl); + + return result == ERROR_SUCCESS; + } + inline std::string GetSystemStorageDirectory() { char* programData = nullptr; @@ -146,6 +216,8 @@ namespace lsm_windows_detail return {}; } + AssignPermissionsToFilesystemPath(storagePath.string(), UTIL_PERM_READ | UTIL_PERM_WRITE); + return storagePath.string(); } // If PROGRAMDATA is not set, return empty string @@ -221,6 +293,8 @@ Error Memory::createOrOpen(const bool create) return create ? Error::CreationFailed : Error::OpeningFailed; } + lsm_windows_detail::AssignPermissionsToFilesystemPath(_persistFilePath, lsm_windows_detail::UTIL_PERM_READ | lsm_windows_detail::UTIL_PERM_WRITE); + LARGE_INTEGER requiredSize; requiredSize.QuadPart = static_cast(_size); From 200c9cb8883971a65a29ac7c22ed583518372f59 Mon Sep 17 00:00:00 2001 From: Alessio Massuoli Date: Fri, 6 Feb 2026 17:20:19 +0100 Subject: [PATCH 35/41] acl setup with inheritance, clean handle close/set permissions/reopen on file create, just to be sure --- include/libsharedmemory/libsharedmemory.hpp | 158 ++++++++++++-------- 1 file changed, 99 insertions(+), 59 deletions(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 1545c31..2345098 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -137,65 +137,90 @@ namespace lsm_windows_detail inline bool AssignPermissionsToFilesystemPath(const std::string path, int permissionsBitMask) { - //for simplicity, creator will always have full permissions, - //while group and others will be assigned the same permissions based on the bitmask - char buffer[MAX_FS_PATH] = { 0 }; - PSID usersSid = nullptr; - - if (path.empty() || path.size() >= MAX_FS_PATH) - return false; - - if (!(permissionsBitMask & (UTIL_PERM_READ | UTIL_PERM_WRITE | UTIL_PERM_EXECUTE))) - { - return false; - } - - strcpy_s(buffer, sizeof(buffer), path.c_str()); - - if (!ConvertStringSidToSidA("S-1-5-32-545", &usersSid)) //built-in Users - return false; - - EXPLICIT_ACCESSA accessPermissions = {}; - - accessPermissions.grfAccessPermissions = 0; - - if (permissionsBitMask & UTIL_PERM_READ) - { - accessPermissions.grfAccessPermissions |= FILE_GENERIC_READ; - } - - if (permissionsBitMask & UTIL_PERM_WRITE) - { - accessPermissions.grfAccessPermissions |= FILE_GENERIC_WRITE; - accessPermissions.grfAccessPermissions |= DELETE; // this is the natural place to put this if needed later - } - - if (permissionsBitMask & UTIL_PERM_EXECUTE) - { - accessPermissions.grfAccessPermissions |= FILE_GENERIC_EXECUTE; - } - - accessPermissions.grfAccessMode = GRANT_ACCESS; - accessPermissions.grfInheritance = SUB_CONTAINERS_AND_OBJECTS_INHERIT; - accessPermissions.Trustee.TrusteeForm = TRUSTEE_IS_SID; - accessPermissions.Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP; - accessPermissions.Trustee.ptstrName = (LPCH)usersSid; - - PACL acl = nullptr; - DWORD result = SetEntriesInAclA(1, &accessPermissions, nullptr, &acl); - - if (result != ERROR_SUCCESS) - { - LocalFree(usersSid); - return false; - } - - result = SetNamedSecurityInfoA(buffer, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, acl, NULL); - - LocalFree(usersSid); - LocalFree(acl); - - return result == ERROR_SUCCESS; + //for simplicity, creator will always have full permissions, + //while group and others will be assigned the same permissions based on the bitmask + char buffer[MAX_FS_PATH] = { 0 }; + PSID usersSid = nullptr; + + if (path.empty() || path.size() >= MAX_FS_PATH) + return false; + + if (!(permissionsBitMask & (UTIL_PERM_READ | UTIL_PERM_WRITE | UTIL_PERM_EXECUTE))) + { + return false; + } + + strcpy_s(buffer, sizeof(buffer), path.c_str()); + + if (!ConvertStringSidToSidA("S-1-5-32-545", &usersSid)) //built-in Users + return false; + + EXPLICIT_ACCESSA accessPermissions = {}; + + accessPermissions.grfAccessPermissions = 0; + + if (permissionsBitMask & UTIL_PERM_READ) + { + accessPermissions.grfAccessPermissions |= FILE_GENERIC_READ; + } + + if (permissionsBitMask & UTIL_PERM_WRITE) + { + accessPermissions.grfAccessPermissions |= FILE_GENERIC_WRITE; + accessPermissions.grfAccessPermissions |= DELETE; // this is the natural place to put this if needed later + } + + if (permissionsBitMask & UTIL_PERM_EXECUTE) + { + accessPermissions.grfAccessPermissions |= FILE_GENERIC_EXECUTE; + } + + accessPermissions.grfAccessMode = GRANT_ACCESS; + accessPermissions.grfInheritance = SUB_CONTAINERS_AND_OBJECTS_INHERIT; + accessPermissions.Trustee.TrusteeForm = TRUSTEE_IS_SID; + accessPermissions.Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP; + accessPermissions.Trustee.ptstrName = (LPCH)usersSid; + + // Retrieve existing DACL to merge with new ACE + PACL oldDacl = nullptr; + PSECURITY_DESCRIPTOR pSD = nullptr; + DWORD result = GetNamedSecurityInfoA( + buffer, + SE_FILE_OBJECT, + DACL_SECURITY_INFORMATION, + nullptr, + nullptr, + &oldDacl, + nullptr, + &pSD + ); + + if (result != ERROR_SUCCESS) + { + LocalFree(usersSid); + return false; + } + + // Merge new ACE with existing DACL + PACL newAcl = nullptr; + result = SetEntriesInAclA(1, &accessPermissions, oldDacl, &newAcl); + + // Free security descriptor (contains oldDacl) + if (pSD) + LocalFree(pSD); + + if (result != ERROR_SUCCESS) + { + LocalFree(usersSid); + return false; + } + + result = SetNamedSecurityInfoA(buffer, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, newAcl, NULL); + + LocalFree(usersSid); + LocalFree(newAcl); + + return result == ERROR_SUCCESS; } inline std::string GetSystemStorageDirectory() @@ -293,8 +318,23 @@ Error Memory::createOrOpen(const bool create) return create ? Error::CreationFailed : Error::OpeningFailed; } + CloseHandle(fileHandle); // will be reopened, this is just to ensure the file exists and has correct permissions + lsm_windows_detail::AssignPermissionsToFilesystemPath(_persistFilePath, lsm_windows_detail::UTIL_PERM_READ | lsm_windows_detail::UTIL_PERM_WRITE); + fileHandle = CreateFileA(_persistFilePath.c_str(), + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + disposition, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (fileHandle == INVALID_HANDLE_VALUE) + { + return create ? Error::CreationFailed : Error::OpeningFailed; + } + LARGE_INTEGER requiredSize; requiredSize.QuadPart = static_cast(_size); From c6a59f60b5e1d89f778412595cd418d3060bb96f Mon Sep 17 00:00:00 2001 From: Salvatore Rivieccio Date: Fri, 6 Feb 2026 17:20:44 +0100 Subject: [PATCH 36/41] Simplify build_and_test workflow triggers Removed workflow_dispatch and push triggers from the build and test workflow. --- .github/workflows/build_and_test.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index aa32803..3c70115 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -4,10 +4,6 @@ on: pull_request: branches: - main - workflow_dispatch: - push: - branches: - - main jobs: build: @@ -144,4 +140,4 @@ jobs: commitish: ${{ github.sha }} body: ${{ steps.notes.outputs.body }} draft: false - prerelease: false \ No newline at end of file + prerelease: false From 3420004cdc8bedee4c549c6a480cc01cc21eaee3 Mon Sep 17 00:00:00 2001 From: Alessio Massuoli Date: Fri, 6 Feb 2026 17:33:11 +0100 Subject: [PATCH 37/41] step version v1.8.0 --- include/libsharedmemory/libsharedmemory.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 2345098..d92f927 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 7 +#define LIBSHAREDMEMORY_VERSION_MINOR 8 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include From 3eaffd7e0349cb78d8e23db6326652c7e58f6e56 Mon Sep 17 00:00:00 2001 From: Alessio Massuoli Date: Fri, 6 Feb 2026 17:35:04 +0100 Subject: [PATCH 38/41] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0879f57..8c4fd09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.8.0] - 2026-02-06 + +### Added: + +- **Windows**: ACL inheritance for shared file, clean close/reopen when applying settings. + ## [1.7.0] - 2026-02-06 ### Added From 0e023d438ddf34c626f1d5a333a7fe0de9d0005a Mon Sep 17 00:00:00 2001 From: Alessio Massuoli Date: Fri, 13 Feb 2026 14:57:52 +0100 Subject: [PATCH 39/41] change linux shm file perm to 777 --- include/libsharedmemory/libsharedmemory.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index d92f927..2cbf535 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -491,7 +491,9 @@ inline Error Memory::createOrOpen(const bool create) const int flags = create ? (O_CREAT | O_RDWR) : O_RDWR; - _fd = shm_open(_path.c_str(), flags, 0755); + _fd = shm_open(_path.c_str(), flags, 0777); + fchmod(_fd, 0777); //explicit + if (_fd < 0) { if (create) From aa6ac366d05012972a6e5a5a01bf025a611652f9 Mon Sep 17 00:00:00 2001 From: Alessio Massuoli Date: Fri, 13 Feb 2026 15:00:47 +0100 Subject: [PATCH 40/41] v1.9.0 - paperwork --- CHANGELOG.md | 7 +++++++ include/libsharedmemory/libsharedmemory.hpp | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c4fd09..daf6622 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.9.0] - 2026-02-13 + +### Added: + +- **Linux**: Default permissions set to 0777. + + ## [1.8.0] - 2026-02-06 ### Added: diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 2cbf535..145008b 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -1,7 +1,7 @@ #pragma once #define LIBSHAREDMEMORY_VERSION_MAJOR 1 -#define LIBSHAREDMEMORY_VERSION_MINOR 8 +#define LIBSHAREDMEMORY_VERSION_MINOR 9 #define LIBSHAREDMEMORY_VERSION_PATCH 0 #include @@ -493,7 +493,7 @@ inline Error Memory::createOrOpen(const bool create) _fd = shm_open(_path.c_str(), flags, 0777); fchmod(_fd, 0777); //explicit - + if (_fd < 0) { if (create) From c9c7d7c649e1da1f1e1be20b7b22ef4dad090363 Mon Sep 17 00:00:00 2001 From: Alessio Massuoli Date: Fri, 13 Feb 2026 15:37:22 +0100 Subject: [PATCH 41/41] add sys/stat.h explicit include (linux) --- include/libsharedmemory/libsharedmemory.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/libsharedmemory/libsharedmemory.hpp b/include/libsharedmemory/libsharedmemory.hpp index 145008b..db8539e 100644 --- a/include/libsharedmemory/libsharedmemory.hpp +++ b/include/libsharedmemory/libsharedmemory.hpp @@ -17,6 +17,7 @@ #if defined(__APPLE__) || defined(__linux__) || defined(__unix__) || defined(_POSIX_VERSION) || defined(__ANDROID__) #include // O_* constants +#include #include // mmap, munmap #include // shm functions, close #endif