Opened 10 years ago
Closed 10 years ago
#686 closed defect (fixed)
New NLO check in hiccups with gfortran 4.7.1
Reported by: | Juergen Reuter | Owned by: | cweiss |
---|---|---|---|
Priority: | P0 | Milestone: | v2.2.3 |
Component: | nlo | Version: | 2.2.2 |
Severity: | blocker | Keywords: | |
Cc: |
Description
This is the error message:
/bin/sh ../../libtool --tag=FC --mode=compile gfortran -I../basics -I../utilities -I../testing -I../system -I../combinatorics -I../parsing -I../physics -I../qft -I../types -I../particles -I../beams -I../../vamp/src -I../shower -I../pdf_builtin -I../muli -I../../circe1/src -I../../circe2/src -I../lhapdf -I../fastjet -g -O2 -c -o processes.lo processes.f90 libtool: compile: gfortran -I../basics -I../utilities -I../testing -I../system -I../combinatorics -I../parsing -I../physics -I../qft -I../types -I../particles -I../beams -I../../vamp/src -I../shower -I../pdf_builtin -I../muli -I../../circe1/src -I../../circe2/src -I../lhapdf -I../fastjet -g -O2 -c processes.f90 -fPIC -o .libs/processes.o processes.f90:1572.4: proc%component(i_component)%core_sub_born = core_born_in 1 Error: Variable must not be polymorphic in intrinsic assignment at (1) - check that there is a matching specific subroutine for '=' operator make[2]: *** [processes.lo] Error 1
Change History (8)
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
... no, NAG just marks it as an extension.
Extension: processes.f90, line 1572: Left-hand side of intrinsic assignment is allocatable polymorphic variable PROC%COMPONENT(I_COMPONENT)%CORE_SUB_BORN
Interesting, didn't expect them to implement those F2008 features early.
comment:3 Changed 10 years ago by
Now there is a segfault in smtest_16:
Warning: No cuts have been defined. Program received signal SIGSEGV: Segmentation fault - invalid memory reference. Backtrace for this error: #0 0x7F8187F62E97 #1 0x7F8187F63464 #2 0x36382326AF #3 0x7F8202C02950 #4 0x7F8202A6F59B #5 0x7F8202DCC072 #6 0x7F8202DDAFE9 #7 0x7F8202E65B8A #8 0x7F8202E6BF7D #9 0x7F8202EC47B7 #10 0x7F8202EC44B9 #11 0x7F82044A3866 #12 0x7F82044A460E #13 0x363821ED5C ./run_whizard.sh: line 26: 1689 Segmentation fault (core dumped) ../src/whizard --logfile $basename.log --no-banner --library ${libname}_lib --rebuild $* $script.sin 65,81d64
comment:4 Changed 10 years ago by
This is the backtrace:
Program received signal SIGSEGV, Segmentation fault. prc_omega::__copy_prc_omega_Prc_omega_t (src=..., dst=<error reading variable: Cannot access memory at address 0x0>) at prc_omega.f90:714 714 class(prc_omega_t), intent(in) :: object (gdb) bt #0 prc_omega::__copy_prc_omega_Prc_omega_t (src=..., dst=<error reading variable: Cannot access memory at address 0x0>) at prc_omega.f90:714 #1 0x00007ffff635c4bc in processes::process_init_sub_born (proc=..., i_component=2, core_born_in=...) at processes.f90:1571 #2 0x00007ffff66b8f93 in integrations::integration_integrate (intg=..., local=..., eff_reset=<error reading variable: Cannot access memory at address 0x0>) at integrations.f90:469 #3 0x00007ffff66c7f0a in integrations::integrate_process (process_id=..., global=..., local_input=..., init_only=<error reading variable: Cannot access memory at address 0x0>, eff_reset=<error reading variable: Cannot access memory at address 0x0>) at integrations.f90:623 #4 0x00007ffff6752aab in commands::cmd_integrate_execute (cmd=..., global=...) at commands.f90:2735 #5 0x00007ffff6758e9e in commands::command_list_execute (cmd_list=..., global=...) at commands.f90:5373 #6 0x00007ffff67b16d8 in whizard::whizard_process_stream (whizard=..., stream=..., lexer=..., quit=.FALSE., quit_code=0) at whizard.f90:427 #7 0x00007ffff67b13da in whizard::whizard_process_file (whizard=..., file=..., quit=.FALSE., quit_code=0) at whizard.f90:403 #8 0x00007ffff7d91867 in MAIN__ () at main.f90:394 #9 0x00007ffff7d9260f in main (argc=<optimized out>, argv=<optimized out>) at main.f90:34 #10 0x0000003ce2c1ed5d in __libc_start_main () from /lib64/libc.so.6 #11 0x0000000000400719 in _start ()
comment:5 Changed 10 years ago by
r6190: skip this test, if the compiler is gfortran < 4.7.4.
The NLO code is in alpha stage, so this test is not mandatory. Skipping it should avoid the test suite failure with this old compiler. The test script can be run manually, anywyay.
May close this as wontfix, or try to circumvent the compiler bug and reactivate the test.
comment:6 Changed 10 years ago by
Sorry but this is a horrible "not_fix". That parts of the program do not work with certain compiler versions is very ugly. Possible solutions are: (1) let the complete NLO depend on a configure option (2) workaround for that problem in gfortran 4.7.1/2/3 [preferred] (3) veto against all gfortran versions older than 4.7.4 (possible but makes direct use e.g.
at DESY only possible with self-compiled compilers)
In any case read my comments at #584
comment:8 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in r6193, with option (2) [preferred option] from list of comment6.
Polymorphic assignment is a F2008 feature. With the -f2003 option in effect, the NAG compiler should also have complained .. (but the offending line appears to be left-over anyway .. please remove).