djvulibre: fix build with clang 16

This fixes the build with clang 16, which defaults to C++17. In C++17,
the `register` storage class specifier was removed.
This commit is contained in:
Randy Eckenrode 2023-07-07 07:15:41 -06:00 committed by Artturin
parent c516ad1ee1
commit f0f53431d1
2 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,21 @@
diff -ur a/libdjvu/GBitmap.h b/libdjvu/GBitmap.h
--- a/libdjvu/GBitmap.h 2020-11-20 09:57:32.000000000 -0700
+++ b/libdjvu/GBitmap.h 2023-07-07 07:07:45.519912414 -0600
@@ -620,7 +620,7 @@
inline int
GBitmap::read_run(unsigned char *&data)
{
- register int z=*data++;
+ int z=*data++;
return (z>=RUNOVERFLOWVALUE)?
((z&~RUNOVERFLOWVALUE)<<8)|(*data++):z;
}
@@ -628,7 +628,7 @@
inline int
GBitmap::read_run(const unsigned char *&data)
{
- register int z=*data++;
+ int z=*data++;
return (z>=RUNOVERFLOWVALUE)?
((z&~RUNOVERFLOWVALUE)<<8)|(*data++):z;
}

View File

@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
bash
];
# Remove uses of the `register` storage class specifier, which was removed in C++17.
# Fixes compilation with clang 16, which defaults to C++17.
patches = [ ./c++17-register-class.patch ];
enableParallelBuilding = true;
meta = with lib; {