Commit 40b0722f by Richard Biener Committed by Richard Biener

re PR lto/60635 (ICE when mixing C and Fortran lto1: error: use operand missing for stmt)

2014-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/60635
	* gimplify-me.c (gimple_regimplify_operands): Update the
	re-gimplifed stmt.

	* gfortran.dg/lto/pr60635_0.f90: New testcase.
	* gfortran.dg/lto/pr60635_1.c: Likewise.

From-SVN: r208811
parent 4a5798de
2014-03-25 Richard Biener <rguenther@suse.de>
PR middle-end/60635
* gimplify-me.c (gimple_regimplify_operands): Update the
re-gimplifed stmt.
2014-03-25 Martin Jambor <mjambor@suse.cz>
PR ipa/59176
......
......@@ -315,6 +315,8 @@ gimple_regimplify_operands (gimple stmt, gimple_stmt_iterator *gsi_p)
gsi_insert_after (gsi_p, post_stmt, GSI_NEW_STMT);
pop_gimplify_context (NULL);
update_stmt (stmt);
}
2014-03-25 Richard Biener <rguenther@suse.de>
PR middle-end/60635
* gfortran.dg/lto/pr60635_0.f90: New testcase.
* gfortran.dg/lto/pr60635_1.c: Likewise.
2014-03-24 Adam Butcher <adam@jessamine.co.uk>
PR c++/60627
......
! { dg-lto-do link }
program test
use iso_fortran_env
interface
integer(int16) function bigendc16(x) bind(C)
import
integer(int16), intent(in) :: x
end function
end interface
integer(int16) :: x16 = 12345
x16 = bigendc16(x16)
print *,x16
end program
#include <stdint.h>
#include <stdbool.h>
static bool littleendian=true;
uint16_t bigendc16(union{uint16_t * n;uint8_t* b;}x){
if (!littleendian) return *x.n;
uint16_t res = ((uint16_t)(x.b[1])<<0) |
((uint16_t)(x.b[0])<<8);
return res;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment