Bug ID 1205190
Summary windows:mingw:win{32|64}/mingw{32|64}-xapian- core - error: reference to 'byte' is ambiguous
Classification openSUSE
Product openSUSE.org
Version unspecified
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component 3rd party software
Assignee fstrba@suse.com
Reporter ralf.habacker@freenet.de
QA Contact screening-team-bugs@suse.de
CC fridrich.strba@bluewin.ch, hib@hiberis.nl, mkbosmans@gmail.com
Found By ---
Blocker ---

The mentioned package fails to build with gcc12 as:


[   97s] backends/glass/glass_changes.cc: In static member function 'static
void GlassChanges::check(const std::string&)':
[   97s] backends/glass/glass_changes.cc:248:66: error: expected '>' before
'byte'
[   97s]   248 |         uint4 block_rev =
unaligned_read4(reinterpret_cast<const byte*>(p));
[   97s]       |                                                               
  ^~~~
[   97s] backends/glass/glass_changes.cc:248:66: error: expected '(' before
'byte'
[   97s]   248 |         uint4 block_rev =
unaligned_read4(reinterpret_cast<const byte*>(p));
[   97s]       |                                                               
  ^~~~
[   97s]       |                                                               
  (
[   97s] backends/glass/glass_changes.cc:248:66: error: reference to 'byte' is
ambiguous
[   97s]   248 |         uint4 block_rev =
unaligned_read4(reinterpret_cast<const byte*>(p));
[   97s]       |                                                               
  ^~~~
[   97s] In file included from
/usr/lib64/gcc/x86_64-w64-mingw32/12.2.0/include/c++/string:42,
[   97s]                  from backends/glass/glass_changes.h:26,
[   97s]                  from backends/glass/glass_changes.cc:24:
[   97s]
/usr/lib64/gcc/x86_64-w64-mingw32/12.2.0/include/c++/bits/cpp_type_traits.h:406:30:
note: candidates are: 'enum class std::byte'
[   97s]   406 |   enum class byte : unsigned char;
[   97s]       |                              ^~~~
[   97s] In file included from backends/glass/glass_defs.h:24,
[   97s]                  from backends/glass/glass_changes.h:25:
[   97s] ./common/internaltypes.h:32:17: note:                 'typedef uint8_t
byte'
[   97s]    32 | typedef uint8_t byte;
[   97s]       |                 ^~~~
[   97s] backends/glass/glass_changes.cc:248:71: error: expected
primary-expression before '>' token
[   97s]   248 |         uint4 block_rev =
unaligned_read4(reinterpret_cast<const byte*>(p));

One of the reason is the extensive usage of 'using namespace std', which maps
'enum class std::byte' into the global namespace, which then conflicts with

/usr/i686-w64-mingw32/sys-root/mingw/include/rpcndr.h:397:170: error: reference
to 'byte' is ambiguous

[   97s] ./common/internaltypes.h:32:17: note:                 'typedef uint8_t
byte'
[   97s]    32 | typedef uint8_t byte;


You are receiving this mail because: