New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build fixes for clang 8.0 and GCC 9.1 #230
Conversation
@joka921 so I felt like investigating this a bit and I think clang is right in complaining about the use of I think I've successfully corrected this for the first occurrence of the problem in 7ff2ef3 but this is quite ugly. What Do you think? We do use both This is the error (for the next unfixed occurrence)
|
GCC 9.1 just landed in Arch Linux and QLever now fails to compile on that as well. This seems to be the same issue as on clang. @floriankramer I assume as a follow Arch user you're seeing this as well? @joka921 pining you because you're most familiar with this part of the code.
|
@niklas88 I'm seeing the error as well running under gcc 9.1. Based upon some reading about SFINAE I did the technique is only applicable to templated functions, as the compiler will otherwise be able to instantiate the function, leading to an error (even if it is never called). Given the requirement for templating I think that your suggested solution of adding an unecessary tempalte parameter that prevents the compiler from instantiating the method might be the best solution, as the only alternative seems to be spezializing the themplate, which includes a lot of code duplication. |
@floriankramer ok have you started changing the functions like in my example correction? Otherwise I would pick up this PR and add them here then we also get the other cleanups. |
@floriankramer I've integrated your SFINAE fix here and only needed one additional change to make things build and run with clang 8.0. I'm still seeing a lot of new warnings. I'll see how much work the GCC warnings are and then we can leave the clang warnings for another PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@floriankramer I pushed another commit and now I can't see any GCC 9.1 warnings in our code (still some in clang but that's for later). Since this last commit is trivial I'll merge when Travis gives its okay. |
This is currently just a place to collect changes needed to build with clang 8.0 (which doesn't work yet).