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
This commit is contained in:
parent
4a5798de3e
commit
40b0722fa3
@ -1,3 +1,9 @@
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,3 +1,9 @@
|
||||
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
|
||||
|
16
gcc/testsuite/gfortran.dg/lto/pr60635_0.f90
Normal file
16
gcc/testsuite/gfortran.dg/lto/pr60635_0.f90
Normal file
@ -0,0 +1,16 @@
|
||||
! { 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
|
||||
|
14
gcc/testsuite/gfortran.dg/lto/pr60635_1.c
Normal file
14
gcc/testsuite/gfortran.dg/lto/pr60635_1.c
Normal file
@ -0,0 +1,14 @@
|
||||
#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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user