[Bug fortran/87359] [9 regression] pointer being freed was not allocated
pault at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Sep 20 06:22:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87359
--- Comment #10 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Thomas Koenig from comment #7)
> Well, I can confirm this. Output from valgrind shows as the first error:
>
> Running test: event_transforms_1| Process library 'event_transforms_1_lib':
> initialized
> ==23957== Invalid read of size 8
> ==23957== at 0xB22334:
> __mci_midpoint_MOD___final_mci_midpoint_Mci_midpoint_t (mci_midpoint.f90:475)
> ==23957== by 0xA57C34: __process_mci_MOD_process_mci_entry_init
> (process_mci.f90:187)
> ==23957== by 0xA8E78B: __process_MOD_process_setup_mci (process.f90:1150)
> ==23957== by 0xB30828: __event_transforms_uti_MOD_event_transforms_1
> (event_transforms_uti.f90:85)
> ==23957== by 0x422BB9: __unit_tests_MOD_test (unit_tests.f90:175)
> ==23957== by 0xB4FF46: __event_transforms_ut_MOD_event_transforms_test
> (event_transforms_ut.f90:45)
> ==23957== by 0xB51801: whizard_check.3816 (in
> /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== by 0xB53255: MAIN__ (in /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== by 0xB535A9: main (in /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== Address 0x61375a0 is 16 bytes inside a block of size 480 free'd
> ==23957== at 0x4C2B28A: free (vg_replace_malloc.c:530)
> ==23957== by 0xA57C03: __process_mci_MOD_process_mci_entry_init
> (process_mci.f90:187)
> ==23957== by 0xA8E78B: __process_MOD_process_setup_mci (process.f90:1150)
> ==23957== by 0xB30828: __event_transforms_uti_MOD_event_transforms_1
> (event_transforms_uti.f90:85)
> ==23957== by 0x422BB9: __unit_tests_MOD_test (unit_tests.f90:175)
> ==23957== by 0xB4FF46: __event_transforms_ut_MOD_event_transforms_test
> (event_transforms_ut.f90:45)
> ==23957== by 0xB51801: whizard_check.3816 (in
> /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== by 0xB53255: MAIN__ (in /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== by 0xB535A9: main (in /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== Block was alloc'd at
> ==23957== at 0x4C2A0DD: malloc (vg_replace_malloc.c:299)
> ==23957== by 0xA4539B:
> __process_config_MOD_process_component_extract_mci_template
> (process_config.f90:834)
> ==23957== by 0xA579D2: __process_mci_MOD_process_mci_entry_init
> (process_mci.f90:187)
> ==23957== by 0xA8E78B: __process_MOD_process_setup_mci (process.f90:1150)
> ==23957== by 0xB30828: __event_transforms_uti_MOD_event_transforms_1
> (event_transforms_uti.f90:85)
> ==23957== by 0x422BB9: __unit_tests_MOD_test (unit_tests.f90:175)
> ==23957== by 0xB4FF46: __event_transforms_ut_MOD_event_transforms_test
> (event_transforms_ut.f90:45)
> ==23957== by 0xB51801: whizard_check.3816 (in
> /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== by 0xB53255: MAIN__ (in /home/ig25/Downloads/Whiz/whizard_test)
> ==23957== by 0xB535A9: main (in /home/ig25/Downloads/Whiz/whizard_test)
>
> So, it is a finalizer problem. The allocate statement was at
>
> function process_component_extract_mci_template (component) &
> result (mci_template)
> class(mci_t), allocatable :: mci_template
> class(process_component_t), intent(in) :: component
> if (allocated (component%mci_template)) &
> allocate (mci_template, source = component%mci_template)
> end function process_component_extract_mci_template
>
> Hopefully, this can narrow things down a bit.
If this a finalizer problem, try reverting r263916.
I am not in a position to work on this right now, except to revert the above
revision on trunk. Please let me know if this does indeed fix your proble.
Cheers
Paul
More information about the Gcc-bugs
mailing list