This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch for ppc gas


This is a patch for a segfault in gas when running the 

gcc/testsuite/g77.f-torture/compile/19990905-2.f

A stabx symbol was not being correctly generated.

-- 
Tom Rix 
GCC Engineer
trix@redhat.com
256.704.9201
diff -rcp gas/ChangeLog gas-new/ChangeLog
*** gas/ChangeLog	Thu May 24 11:34:18 2001
--- gas-new/ChangeLog	Thu May 24 11:33:24 2001
***************
*** 1,3 ****
--- 1,7 ----
+ 2000-05-24  Tom Rix <trix@redhat.com>
+ 
+ 	* config/tc-ppc.c (ppc_stabx) : fix generated symbol
+ 	
diff -rcp gas/config/tc-ppc.c gas-new/config/tc-ppc.c
*** gas/config/tc-ppc.c	Thu May 24 11:34:24 2001
--- gas-new/config/tc-ppc.c	Thu May 24 11:33:31 2001
*************** ppc_stabx (ignore)
*** 2766,2773 ****
  
    symbol_get_tc (sym)->output = 1;
  
!   if (S_GET_STORAGE_CLASS (sym) == C_STSYM)
      symbol_get_tc (sym)->within = ppc_current_block;
  
    if (exp.X_op != O_symbol
        || ! S_IS_EXTERNAL (exp.X_add_symbol)
--- 2766,2797 ----
  
    symbol_get_tc (sym)->output = 1;
  
!   if (S_GET_STORAGE_CLASS (sym) == C_STSYM) {
! 	  
      symbol_get_tc (sym)->within = ppc_current_block;
+ 
+   /*
+ 	In this case :
+ 	
+ 	.bs name
+ 	.stabx	"z",arrays_,133,0
+ 	.es
+ 
+ 	.comm arrays_,13768,3
+ 
+ 	resolve_symbol_value will copy the exp's "within" into sym's when the
+ 	offset is 0.  Since this seems to be corner case problem,
+ 	only do the correction for storage class C_STSYM.  A better solution
+ 	would be to have the tc	field updated in ppc_symbol_new_hook.
+ 
+ 	Tom Rix, 5.23.01
+   */
+ 
+ 	if (exp.X_op == O_symbol) {
+ 		symbol_get_tc (exp.X_add_symbol)->within = ppc_current_block;
+ 	}
+   }
+   
  
    if (exp.X_op != O_symbol
        || ! S_IS_EXTERNAL (exp.X_add_symbol)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]