Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 55dcda00e1126415a2ca4356273f0bfe15af8f87
      
https://github.com/Perl/perl5/commit/55dcda00e1126415a2ca4356273f0bfe15af8f87
  Author: Tony Cook <t...@develop-help.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M embed.fnc
    M perl.c
    M proto.h

  Log Message:
  -----------
  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


Reply via email to