* gcc-interface/trans.c (addressable_p): Handle bitwise operations.
From-SVN: r152932
This commit is contained in:
parent
0046b1a727
commit
9f4afcd44f
4 changed files with 35 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/trans.c (addressable_p): Handle bitwise operations.
|
||||
|
||||
2009-10-16 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/ada-tree.h (TYPE_FAT_POINTER_P): Swap with...
|
||||
|
|
|
@ -6949,6 +6949,10 @@ addressable_p (tree gnu_expr, tree gnu_type)
|
|||
case CALL_EXPR:
|
||||
case PLUS_EXPR:
|
||||
case MINUS_EXPR:
|
||||
case BIT_IOR_EXPR:
|
||||
case BIT_XOR_EXPR:
|
||||
case BIT_AND_EXPR:
|
||||
case BIT_NOT_EXPR:
|
||||
/* All rvalues are deemed addressable since taking their address will
|
||||
force a temporary to be created by the middle-end. */
|
||||
return true;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2009-10-17 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/unchecked_convert4.adb: New test.
|
||||
|
||||
2009-10-15 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/38798
|
||||
|
|
23
gcc/testsuite/gnat.dg/unchecked_convert4.adb
Normal file
23
gcc/testsuite/gnat.dg/unchecked_convert4.adb
Normal file
|
@ -0,0 +1,23 @@
|
|||
-- { dg-do compile }
|
||||
|
||||
with Unchecked_Conversion;
|
||||
|
||||
procedure Unchecked_Convert4 is
|
||||
|
||||
type Uint32 is mod 2**32;
|
||||
|
||||
type Rec is record
|
||||
I : Uint32;
|
||||
end record;
|
||||
pragma Atomic (Rec);
|
||||
|
||||
function Conv is new Unchecked_Conversion (Uint32, Rec);
|
||||
|
||||
function F return Uint32;
|
||||
pragma Import (Ada, F);
|
||||
|
||||
procedure Proc (R : Rec) is begin null; end;
|
||||
|
||||
begin
|
||||
Proc (Conv (F or 1));
|
||||
end;
|
Loading…
Add table
Reference in a new issue