Skip to content

Inconsistent type definitions for gcc/g++ on Mac OS X #133

@martinschwinzerl

Description

@martinschwinzerl

Compiling sixtracklib on Mac OS X 10.15 Catalina using gcc/g++ 10.2, some types appear to be inconsistent.
Specifically, the sixtracklib/common/internal/track_job_base.cpp ends up with the TrackJob's size_type being unsigned long while in the header sixtracklib/common/internal/track_job_base.h, the size_type is an alias for unsigned long long

This results in error messages like the following:

[ 52%] Building CXX object sixtracklib/common/internal/CMakeFiles/sixtrack_common_internal_cxx.dir/track_job_base.cpp.o
/Users/user926596/git/sixtracklib/sixtracklib/common/internal/track_job_base.cpp:59:25: error: conflicting declaration 'constexpr const st_size_t sixtrack::TrackJobBase::ILLEGAL_BUFFER_ID'
   59 |     constexpr st_size_t tjob_t::ILLEGAL_BUFFER_ID;
      |                         ^~~~~~
In file included from /Users/user926596/git/sixtracklib/sixtracklib/common/internal/track_job_base.cpp:1:
/Users/user926596/git/sixtracklib/sixtracklib/common/internal/track_job_base.h:67:36: note: previous declaration as 'constexpr const size_type sixtrack::TrackJobBase::ILLEGAL_BUFFER_ID'
   67 |         static constexpr size_type ILLEGAL_BUFFER_ID =

TODO:

  • Analyse why this issue has only affected Mac OS X builds so far (same compiler for Linux seems to work fine)
  • Fix the issue
  • Verify that this issue is not also causing troubles elsewhere

Thanks to @fsoubelet for reporting this issue!

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions