bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bison 3.8.2 glr2.cc portability report


From: Tom Shields
Subject: Bison 3.8.2 glr2.cc portability report
Date: Sat, 9 Oct 2021 14:31:01 -0500

Akim,

I thought you might be interested in the results of portability testing for the 
Ox 1.10 release (available yesterday).

Ox 1.10 has 6 parsers generated by bison 3.8.2, using the glr2.cc skeleton.

For portability testing, I run the regression tests on each operating systems 
using each C++ compiler listed below.

The Solaris Studio errors noted below are due to a defect in support for the 
C++ 2011: a noexcept operator within a noexcept specifier for an overloaded 
version of std::swap in several header files is the source of the error 
messages above.  The exact same signature is found in the equivalent GNU & LLVM 
header files.  As an experiment (on Solaris 11.4), I edited the offending 
signature in the header files to bypass the problem, which allowed Ox to 
compile.  Ox then failed to link due to several versions of the C++ 
std::ostream '<<' operator missing from the C++ library.

Regards,

Tom Shields



macOS Big Sur 11.6 (Apple M1 ARM)
macOS Big Sur 11.5.2 (Intel x86_64)
macOS Catalina 10.15.7 (Intel x86_64)
macOS Mojave 10.14.6 (Intel x86_64)
        NOTE: not all compiler versions are available for all 4 versions.

  - Apple Xcode C++ 10.0.1: no compile issues
  - Apple Xcode C++ 11.0.3: no compile issues
  - Apple Xcode C++ 13.0: no compile issues

  - Homebrew LLVM Clang++ 6.0.1: no compile issues
  - Homebrew LLVM Clang++ 7.1: no compile issues
  - Homebrew LLVM Clang++ 8.0.1: no compile issues
  - Homebrew LLVM Clang++ 9.0.1: no compile issues
  - Homebrew LLVM Clang++ 11.1: no compile issues
  - Homebrew LLVM Clang++ 12.0.1: no compile issues

  - Homebrew GNU C++ 4.9.4: compile warnings for each parser (see below)
  - Homebrew GNU C++ 5.5: compile warnings for each parser (see below)
  - Homebrew GNU C++ 6.5: compile warnings for each parser (see below)
  - Homebrew GNU C++ 7.5: compile warnings for each parser (see below)
  - Homebrew GNU C++ 8.5: compile warnings for each parser (see below)
  - Homebrew GNU C++ 9.4: compile warnings for each parser (see below)
  - Homebrew GNU C++ 10.3: compile warnings for each parser (see below)
  - Homebrew GNU C++ 11.1: compile warnings for each parser (see below)
  - Homebrew GNU C++ 11.2: compile warnings for each parser:
      agc-Lfile.cc:2711:16: warning: 'AGC::lexer::glr_stack' has a field 
'AGC::lexer::glr_stack::yyerror_range' whose type uses the anonymous namespace 
[-Wsubobject-linkage]
      agc-Lfile.cc:2711:16: warning: 'AGC::lexer::glr_stack' has a field 
'AGC::lexer::glr_stack::yystateStack' whose type uses the anonymous namespace 
[-Wsubobject-linkage]


Ubuntu Linux 21.04 (Intel x86_64)

  - GNU C++ 5.5: compile warnings for each parser, same form as above
  - GNU C++ 6.5: compile warnings for each parser, same form as above
  - GNU C++ 7.5: compile warnings for each parser, same form as above
  - GNU C++ 8.4: compile warnings for each parser, same form as above
  - GNU C++ 9.3: compile warnings for each parser, same form as above
  - GNU C++ 10.3: compile warnings for each parser, same form as above
  - GNU C++ 11.1: compile warnings for each parser, same form as above

  - LLVM Clang++ 3.9.1: no compile issues
  - LLVM Clang++ 4.0.1: no compile issues
  - LLVM Clang++ 9.0.1: no compile issues
  - LLVM Clang++ 11.0.1: no compile issues
  - LLVM Clang++ 12.0: no compile issues


Windows 10 (Intel x86_64) Cywgin 3.2.0

  - GNU C++ 11.2: compile warnings for each parser, same form as above
  - MinGW GNU C++ 11.2: compile warnings for each parser, same form as above

  - LLVM Clang++ 8.0.1: no compile issues
  - MinGW LLVM Clang++ 8.0.1: no compile issues


Windows 10 (Intel x86_64) Msys2 3.2.0

  - GNU C++ 10.2: compile warnings for each parser, same form as above
  - MinGW GNU C++ 10.3: compile warnings for each parser, same form as above

  - MinGW LLVM Clang++ 12.0.1: no compile issues


Solaris 11.3 (Intel x86_64)

  - GNU C++ 4.8.2: never got to trying to compile the parser source due to 
defects in support for the C++ 2011 standard.
  - Solaris Studio 12.5 C++: compile errors for each parser, of the following 
form:
      
"/opt/developerstudio12.5/lib/compilers/CC-gcc/include/c++/5.1.0/bits/algorithmfwd.h",
 line 582: Error: Could not find a match for std::swap<_Tp>(_Tp, _Tp) needed in 
glr_stack_item::operator=(glr_stack_item).
      "agc-Lfile.cc", line 2032:     Where: While instantiating 
"std::swap<char, 52>(char(&)[52], char(&)[52])".
      "agc-Lfile.cc", line 2032:     Where: Instantiated from non-template code.
      
"/opt/developerstudio12.5/lib/compilers/CC-gcc/include/c++/5.1.0/bits/algorithmfwd.h",
 line 582: Error: A constant expression is required here.
      "agc-Lfile.cc", line 2032:     Where: While instantiating 
"std::swap<char, 52>(char(&)[52], char(&)[52])".
      "agc-Lfile.cc", line 2032:     Where: Instantiated from non-template code.


Solaris 11.4 (Intel x86_64)

  - GNU C++ 7.3: no compile issues
  - Solaris Studio 12.6 C++: compile errors for each parser, same form as above 
for Studio 12.5






reply via email to

[Prev in Thread] Current Thread [Next in Thread]