codereport / jsource

J Language Source Code. Livestream links ⬇️
https://www.youtube.com/playlist?list=PLVFrD1dmDdvfVhYLU_iKkV67X9XqCJLWe
Other
38 stars 20 forks source link

Compilation error with GCC 10.2 #162

Closed herwinw closed 3 years ago

herwinw commented 3 years ago
FAILED: jsrc/CMakeFiles/j.dir/Debug/verbs/dyadic/take_drop.cpp.o 
/usr/bin/c++ -Dj_EXPORTS -DCMAKE_INTDIR=\"Debug\" -I../jsrc -g -fPIC -fvisibility=hidden -fPIE -fPIC -Wfatal-errors -fdiagnostics-color=always -Werror -Wall -Wextra -Wunused-macros -Wno-error=unused-macros -Wno-unused-parameter -Wno-unused-value -Wno-unused-variable -Wno-sign-compare -std=c++17 -MD -MT jsrc/CMakeFiles/j.dir/Debug/verbs/dyadic/take_drop.cpp.o -MF jsrc/CMakeFiles/j.dir/Debug/verbs/dyadic/take_drop.cpp.o.d -o jsrc/CMakeFiles/j.dir/Debug/verbs/dyadic/take_drop.cpp.o -c ../jsrc/verbs/dyadic/take_drop.cpp
In file included from ../jsrc/j.h:1042,
                 from ../jsrc/array.hpp:5,
                 from ../jsrc/verbs/dyadic/take_drop.cpp:5:
../jsrc/verbs/dyadic/take_drop.cpp: In function ‘AD* jttks(J, array, array)’:
../jsrc/verbs/dyadic/take_drop.cpp:82:74: error: cast between incompatible function types from ‘AD* (*)(J, A, A)’ {aka ‘AD* (*)(JST*, AD*, AD*)’} to ‘AF’ {aka ‘AD* (*)()’} [-Werror=cast-function-type]
   82 |         x        = irs2(vec(INT, r - m, m + u), SPA(wp, x), 0L, 1L, -1L, reinterpret_cast<AF>(jttake));
      |                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../jsrc/ja.h:270:80: note: in definition of macro ‘irs2’
  270 | #define irs2(x0, x1, x2, x3, x4, x5) jtirs2(jt, (x0), (x1), (x2), (x3), (x4), (x5))
      |                                                                                ^~
compilation terminated due to -Wfatal-errors.

Compiler version is g++ (Debian 10.2.1-6) 10.2.1 20210110. The CI uses an older version of GCC (7.5.0), which seems to work fine. Compiling with clang 11.0.1-2 works fine on my system as well.

herwinw commented 3 years ago

https://buildkite.com/codereport/jsource/builds/695#c3537939-e0cf-477b-8b02-b9f04d206030

These functions are meant to be variadic, but this is done implicitly. I guess this is no longer supported in more recent compilers

herwinw commented 3 years ago

Let's continue in #164, no need to have two Github issues for one problem.