Skip to content

Compilation fails with gcc5.3.0 due to isnan() ambiguity  #1112

@TobiKattmann

Description

@TobiKattmann

Describe the bug
In PR #1105 an isnan(SU2_TYPE::GetValue(monitor)) check was introduced. I get a compiler error (serial build, no AD DD involved) call of overload isnan(souble&) is ambiguos so the complier is probably confused about the return type of SU2_TYPE::GetValue(monitor) which is passivedouble which itself is hardcoded to be double in datatype_structure.hpp. Or sth else is happening idk

image

I only have the problem with gcc5.3.0. On the same system I have an unsupported gcc7.4.0 that works. My private machine with gcc10.2.0 works fine as well. So I guess it is a specific compiler problem.

In my I hit the ⌨️ a few times without actually knowing what I am doing:

  • use isnan(monitor) ... same error
  • use isnan(static_cast<double>(monitor)) ... same error
  • use isnan(static_cast<double>(SU2_TYPE::GetValue(monitor))) ... same error
  • changed the return type of GetValue to double ...same error

I guess this problem is really specific to my setup. gcc5.3.0 is old but not grandpa kinda old with the release dec 2015 ... well ok maybe it is 👴
I would be happy with some suggestions what to try out maybe, also if I misinterpret the error a pointer in the right direction would help. If @pcarruscag could have a quick look that would be great.

Thanks and warm regards, Tobi

To Reproduce
You probably cant without an old enough compiler

Desktop (please complete the following information):

  • OS: RHES 7.6
  • C++ compiler and version: g++ (GCC) 5.3.0
  • SU2 Version: latest develop

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions