[Bug fortran/45827] mio_component_ref(): Component not found when mixing f90 and f03 in large projects

boschmann at tp1 dot physik.uni-siegen.de gcc-bugzilla@gcc.gnu.org
Thu Sep 30 17:47:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45827

--- Comment #13 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2010-09-30 13:03:09 UTC ---
(In reply to comment #12)
> Actually, I am confused: From that comment it sounds as if 20100921 does not
> have the bug 45746 - but it has been reported using 20100921 and a comment by
> Dominique indicates that it never worked with GCC 4.5/4.6 but it only worked
> for a while on the fortran-dev branch.

You are right about this, I'm switching back and forth in the version of gcc
and got lost.


But I have run valgrind now. It was the first time, so I don't understand the
result. Is it somehow the fault of my hardware/OS? Here is the output:


valgrind --leak-check=full /opt/gcc-trunk/bin/gfortran -ffree-form
-ffree-line-length-0 -I. -L.  -c common.f03 -o common.o
==31832== Memcheck, a memory error detector                                     
==31832== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.       
==31832== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info     
==31832== Command: /opt/gcc-trunk/bin/gfortran -ffree-form -ffree-line-length-0
-I. -L. -c common.f03 -o common.o                                          
==31832==                                                                       
common.f03:27.22:                                                               

  use arguments_module
                      1
Interner Fehler bei (1):
mio_component_ref(): Component not found
==31832==                               
==31832== HEAP SUMMARY:                 
==31832==     in use at exit: 32,209 bytes in 82 blocks
==31832==   total heap usage: 268 allocs, 186 frees, 49,388 bytes allocated
==31832==                                                                  
==31832== 1 bytes in 1 blocks are definitely lost in loss record 2 of 70   
==31832==    at 0x4C234E7: calloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FC38: xcalloc (xmalloc.c:162)                               
==31832==    by 0x40DE7F: main (gcc.c:6993)                                     
==31832==                                                                       
==31832== 4 bytes in 1 blocks are possibly lost in loss record 4 of 70          
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x41DA2D: concat (concat.c:159)                                 
==31832==    by 0x407090: driver_handle_option (gcc.c:3729)                     
==31832==    by 0x410A37: handle_option (opts-common.c:673)                     
==31832==    by 0x410B7C: read_cmdline_option (opts-common.c:812)               
==31832==    by 0x40580E: process_command (gcc.c:4177)                          
==31832==    by 0x40C63C: main (gcc.c:6593)                                     
==31832==                                                                       
==31832== 15 bytes in 1 blocks are definitely lost in loss record 10 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)                                
==31832==    by 0x40A282: do_self_spec (gcc.c:4619)                             
==31832==    by 0x40ABCE: do_option_spec (gcc.c:4608)                           
==31832==                                                                       
==31832== 18 bytes in 1 blocks are definitely lost in loss record 16 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x4097A4: do_spec_1 (gcc.c:5584)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==                                                                       
==31832== 27 bytes in 1 blocks are definitely lost in loss record 21 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)                                
==31832==    by 0x40A282: do_self_spec (gcc.c:4619)                             
==31832==    by 0x40ABCE: do_option_spec (gcc.c:4608)                           
==31832==    by 0x40C7C9: main (gcc.c:6629)                                     
==31832==                                                                       
==31832== 32 (16 direct, 16 indirect) bytes in 1 blocks are definitely lost in
loss record 35 of 70
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x407401: record_temp_file (gcc.c:2329)                         
==31832==    by 0x40767B: end_going_arg (gcc.c:4461)                            
==31832==    by 0x408544: do_spec_1 (gcc.c:4859)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x4097A4: do_spec_1 (gcc.c:5584)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==                                                                       
==31832== 37 bytes in 1 blocks are definitely lost in loss record 36 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x4097A4: do_spec_1 (gcc.c:5584)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==                                                                       
==31832== 38 bytes in 1 blocks are definitely lost in loss record 37 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x41DA2D: concat (concat.c:159)                                 
==31832==    by 0x40588E: process_command (gcc.c:4250)                          
==31832==    by 0x40C63C: main (gcc.c:6593)                                     
==31832==                                                                       
==31832== 42 bytes in 1 blocks are definitely lost in loss record 40 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x4097A4: do_spec_1 (gcc.c:5584)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)                                
==31832==    by 0x40B845: do_spec (gcc.c:4522)                                  
==31832==                                                                       
==31832== 49 bytes in 2 blocks are definitely lost in loss record 41 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)                                
==31832==    by 0x40B845: do_spec (gcc.c:4522)                                  
==31832==    by 0x40E05E: main (gcc.c:7075)                                     
==31832==                                                                       
==31832== 52 bytes in 2 blocks are definitely lost in loss record 42 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)                                
==31832==    by 0x40A282: do_self_spec (gcc.c:4619)                             
==31832==    by 0x40ABCE: do_option_spec (gcc.c:4608)                           
==31832==    by 0x40C7C9: main (gcc.c:6629)                                     
==31832==                                                                       
==31832== 64 bytes in 1 blocks are definitely lost in loss record 46 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x41DA2D: concat (concat.c:159)                                 
==31832==    by 0x40D613: main (gcc.c:6755)                                     
==31832==                                                                       
==31832== 92 bytes in 1 blocks are definitely lost in loss record 47 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x41DA2D: concat (concat.c:159)                                 
==31832==    by 0x4058C6: process_command (gcc.c:4256)                          
==31832==    by 0x40C63C: main (gcc.c:6593)                                     
==31832==                                                                       
==31832== 96 bytes in 1 blocks are definitely lost in loss record 50 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x41DA2D: concat (concat.c:159)                                 
==31832==    by 0x4058DF: process_command (gcc.c:4261)                          
==31832==    by 0x40C63C: main (gcc.c:6593)                                     
==31832==                                                                       
==31832== 96 bytes in 1 blocks are definitely lost in loss record 51 of 70      
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x41DA2D: concat (concat.c:159)                                 
==31832==    by 0x405912: process_command (gcc.c:4264)                          
==31832==    by 0x40C63C: main (gcc.c:6593)                                     
==31832==                                                                       
==31832== 116 bytes in 1 blocks are definitely lost in loss record 52 of 70     
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x4097A4: do_spec_1 (gcc.c:5584)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)                                
==31832==    by 0x40B845: do_spec (gcc.c:4522)                                  
==31832==                                                                       
==31832== 126 bytes in 5 blocks are definitely lost in loss record 53 of 70     
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)       
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)                               
==31832==    by 0x4025D5: save_string (gcc.c:7322)                              
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)                                
==31832==    by 0x4097A4: do_spec_1 (gcc.c:5584)                                
==31832==    by 0x40B455: handle_braces (gcc.c:6096)                            
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)
==31832==    by 0x40B845: do_spec (gcc.c:4522)
==31832==    by 0x40E05E: main (gcc.c:7075)
==31832==
==31832== 135 bytes in 2 blocks are definitely lost in loss record 55 of 70
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)
==31832==    by 0x4025D5: save_string (gcc.c:7322)
==31832==    by 0x40B3AB: handle_braces (gcc.c:6093)
==31832==    by 0x409303: do_spec_1 (gcc.c:5485)
==31832==    by 0x40A25A: do_spec_2 (gcc.c:4554)
==31832==    by 0x40B845: do_spec (gcc.c:4522)
==31832==    by 0x40E05E: main (gcc.c:7075)
==31832==
==31832== 176 bytes in 1 blocks are definitely lost in loss record 58 of 70
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)
==31832==    by 0x405007: process_command (gcc.c:1178)
==31832==    by 0x40C63C: main (gcc.c:6593)
==31832==
==31832== 4,064 bytes in 1 blocks are definitely lost in loss record 70 of 70
==31832==    at 0x4C241C3: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31832==    by 0x41FBF7: xmalloc (xmalloc.c:147)
==31832==    by 0x4EA3BF8: _obstack_begin (obstack.c:186)
==31832==    by 0x40D188: main (gcc.c:6800)
==31832==
==31832== LEAK SUMMARY:
==31832==    definitely lost: 5,260 bytes in 26 blocks
==31832==    indirectly lost: 16 bytes in 1 blocks
==31832==      possibly lost: 4 bytes in 1 blocks
==31832==    still reachable: 26,929 bytes in 54 blocks
==31832==         suppressed: 0 bytes in 0 blocks
==31832== Reachable blocks (those to which a pointer was found) are not shown.
==31832== To see them, rerun with: --leak-check=full --show-reachable=yes
==31832==
==31832== For counts of detected and suppressed errors, rerun with: -v
==31832== ERROR SUMMARY: 20 errors from 20 contexts (suppressed: 4 from 4)

(In reply to comment #12)
> (In reply to comment #11)
> > So it works with 4.6.0 20100924, but it still doesn't work with 4.6.0 20100921.
> > Unfortunately, I cannot use the latest revision, until bug 45746 is fixed.
> 
> Actually, I am confused: From that comment it sounds as if 20100921 does not
> have the bug 45746 - but it has been reported using 20100921 and a comment by
> Dominique indicates that it never worked with GCC 4.5/4.6 but it only worked
> for a while on the fortran-dev branch.
> 
> 
> > Plus, I assume that the error message will show up in later revisions again.
> 
> Any reason why you think that this will be the case?
> 
> 
> (In reply to comment #0)
> > I use the actual GNU Fortran (GCC) 4.6.0 20100928. But it already happened,
> > that the bug disappeared and appeared again.
> 
> Such bugs are usually an indication for not properly initialized memory.
> Especially when it happens, it helps if one can try valgrind on the file:
> 
>   valgrind `gfortran -v 2>&1 <other commandline options> | grep f951`
> 
> Memory related errors tend to show up only on few machines and in irregular
> patterns, which makes finding them difficult.



More information about the Gcc-bugs mailing list