CONTEXT I am running an 2015 intel macbook air Apple has their own compiler called appleclang that is their own version of clang SUMMARY I was building the KCodecs framework where I got error about the "register" storage class specifier not being allowed any more STEPS TO REPRODUCE 1. Have an apple computer on macos sequoia 2. clone Kcodecs gitlab 3. try to build & compile it OBSERVED RESULT [ 58%] Building CXX object src/CMakeFiles/KF6Codecs.dir/kcharsets.cpp.o In file included from /Users/daniel/Programs/kframe/kcodecs/src/kcharsets.cpp:14: /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:40:31: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 40 | KCodecsEntities::hash_Entity (register const char *str, register unsigned int len) | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:40:57: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 40 | KCodecsEntities::hash_Entity (register const char *str, register unsigned int len) | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:71:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 71 | register unsigned int hval = len; | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:104:34: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 104 | KCodecsEntities::kde_findEntity (register const char *str, register unsigned int len) | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:104:60: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 104 | KCodecsEntities::kde_findEntity (register const char *str, register unsigned int len) | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:397:11: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 397 | register int index = lookup[key]; | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:401:15: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister] 401 | register const char *s = wordlist_Entity[index].name; | ^~~~~~~~ /Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:408:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant] 408 | return 0; | ^ | nullptr 1 warning and 7 errors generated. make[2]: *** [src/CMakeFiles/KF6Codecs.dir/kcharsets.cpp.o] Error 1 make[1]: *** [src/CMakeFiles/KF6Codecs.dir/all] Error 2 make: *** [all] Error 2 EXPECTED RESULT I expected it to build & compile without errors SOFTWARE/OS VERSIONS macOS: Sequoia ADDITIONAL INFORMATION N/A
See https://bugs.kde.org/show_bug.cgi?id=440091 You need a newer version of gperf
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kcodecs/-/merge_requests/66