mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			[multiple changes]
2016-11-09 Mikael Morin <mikael@gcc.gnu.org> Janus Weil <janus@gcc.gnu.org> PR fortran/46459 * interface.c (compare_actual_formal): Add safety checks to avoid ICE. 2016-11-09 Janus Weil <janus@gcc.gnu.org> PR fortran/46459 * gfortran.dg/volatile14.f90: New test. From-SVN: r242020
This commit is contained in:
		
							parent
							
								
									e922b25690
								
							
						
					
					
						commit
						271dd55c78
					
				|  | @ -1,10 +1,16 @@ | ||||||
|  | 2016-11-09  Mikael Morin  <mikael@gcc.gnu.org> | ||||||
|  | 	    Janus Weil  <janus@gcc.gnu.org> | ||||||
|  | 
 | ||||||
|  | 	PR fortran/46459 | ||||||
|  | 	* interface.c (compare_actual_formal): Add safety checks to avoid ICE. | ||||||
|  | 
 | ||||||
| 2016-11-09  Fritz O. Reese <fritzoreese@gmail.com> | 2016-11-09  Fritz O. Reese <fritzoreese@gmail.com> | ||||||
| 
 | 
 | ||||||
| 	PR fortran/78259 | 	PR fortran/78259 | ||||||
| 	* trans-expr.c (gfc_trans_subcomponent_assign): Guard against NULL | 	* trans-expr.c (gfc_trans_subcomponent_assign): Guard against NULL | ||||||
| 	values. | 	values. | ||||||
| 
 | 
 | ||||||
| 2016-11-09  Steve Kargl <kargl@gcc.gnu.org> | 2016-11-09  Steven G. Kargl  <kargl@gcc.gnu.org> | ||||||
| 	    Janus Weil  <janus@gcc.gnu.org> | 	    Janus Weil  <janus@gcc.gnu.org> | ||||||
| 
 | 
 | ||||||
| 	PR fortran/60777 | 	PR fortran/60777 | ||||||
|  |  | ||||||
|  | @ -3190,6 +3190,7 @@ compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal, | ||||||
| 	 shape array, if the dummy argument has the VOLATILE attribute.  */ | 	 shape array, if the dummy argument has the VOLATILE attribute.  */ | ||||||
| 
 | 
 | ||||||
|       if (f->sym->attr.volatile_ |       if (f->sym->attr.volatile_ | ||||||
|  | 	  && a->expr->expr_type == EXPR_VARIABLE | ||||||
| 	  && a->expr->symtree->n.sym->as | 	  && a->expr->symtree->n.sym->as | ||||||
| 	  && a->expr->symtree->n.sym->as->type == AS_ASSUMED_SHAPE | 	  && a->expr->symtree->n.sym->as->type == AS_ASSUMED_SHAPE | ||||||
| 	  && !(f->sym->as && f->sym->as->type == AS_ASSUMED_SHAPE)) | 	  && !(f->sym->as && f->sym->as->type == AS_ASSUMED_SHAPE)) | ||||||
|  | @ -3219,6 +3220,7 @@ compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal, | ||||||
| 	 dummy argument has the VOLATILE attribute.  */ | 	 dummy argument has the VOLATILE attribute.  */ | ||||||
| 
 | 
 | ||||||
|       if (f->sym->attr.volatile_ |       if (f->sym->attr.volatile_ | ||||||
|  | 	  && a->expr->expr_type == EXPR_VARIABLE | ||||||
| 	  && a->expr->symtree->n.sym->attr.pointer | 	  && a->expr->symtree->n.sym->attr.pointer | ||||||
| 	  && a->expr->symtree->n.sym->as | 	  && a->expr->symtree->n.sym->as | ||||||
| 	  && !(f->sym->as | 	  && !(f->sym->as | ||||||
|  |  | ||||||
|  | @ -1,3 +1,8 @@ | ||||||
|  | 2016-11-09  Janus Weil  <janus@gcc.gnu.org> | ||||||
|  | 
 | ||||||
|  | 	PR fortran/46459 | ||||||
|  | 	* gfortran.dg/volatile14.f90: New test. | ||||||
|  | 
 | ||||||
| 2016-11-09  Uros Bizjak  <ubizjak@gmail.com> | 2016-11-09  Uros Bizjak  <ubizjak@gmail.com> | ||||||
| 
 | 
 | ||||||
| 	PR target/78262 | 	PR target/78262 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,29 @@ | ||||||
|  | ! { dg-do compile } | ||||||
|  | ! | ||||||
|  | ! PR 46459: ICE (segfault): Invalid read in compare_actual_formal [error recovery] | ||||||
|  | ! | ||||||
|  | ! Contributed by Harald Anlauf <anlauf@gmx.de> | ||||||
|  | 
 | ||||||
|  |   call sub (1) | ||||||
|  | contains | ||||||
|  |   subroutine sub (j) | ||||||
|  |     integer, volatile :: j | ||||||
|  |   end subroutine | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | subroutine sub1 () | ||||||
|  |   call sub2 (1)         ! { dg-error "Explicit interface required" } | ||||||
|  | end subroutine | ||||||
|  | 
 | ||||||
|  | subroutine sub2 (j) | ||||||
|  |   integer, volatile :: j | ||||||
|  | end subroutine | ||||||
|  | 
 | ||||||
|  | subroutine sub3 () | ||||||
|  |   interface | ||||||
|  |      subroutine sub2 (j) | ||||||
|  |        integer, volatile :: j | ||||||
|  |      end subroutine | ||||||
|  |   end interface | ||||||
|  |   call sub2 (1) | ||||||
|  | end subroutine | ||||||
		Loading…
	
		Reference in New Issue
	
	 Janus Weil
						Janus Weil