Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
remove C++20 deprecated volatile argument
This produced warnings like: g++ -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing \ -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \ -xc++ -I/usr/lib/llvm-18/include -std=c++17 -fno-exceptions \ -funwind-tables -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS \ -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fexceptions \ -I/usr/lib/x86_64-linux-gnu/perl5/5.36/Imager/include -std=c++23 \ -O2 -g -DVERSION=\"1.000\" -DXS_VERSION=\"1.000\" -fPIC \ "-I/usr/lib/x86_64-linux-gnu/perl/5.36/CORE" LLVM.c In file included from /usr/lib/x86_64-linux-gnu/perl/5.36/CORE/perl.h:5798, from LLVM.xs:15: /usr/lib/x86_64-linux-gnu/perl/5.36/CORE/proto.h:392:65: warning: ‘volatile’-qualified parameter is deprecated [-Wvolatile] 392 | PERL_CALLCONV I32 Perl_call_sv(pTHX_ SV* sv, volatile I32 flags); | ~~~~~~~~~~~~~^~~~~ I haven't been able to produce this when building perl itself as C++ since it requires a modern -std argument to reproduce, and that breaks the build in other ways. It is reproducible when building a C++ XS module with gcc and -std=c++20 or later. In a strict standard sense flags does not need to be volatile since flags is not modified between setjmp() and longjmp(), but due to a bug in gcc, gcc complains flags could be clobbered. GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161
- Loading branch information