From 702d139e260512c2bc3bcee7def3d5fe22d8ab22 Mon Sep 17 00:00:00 2001 From: Thomas Quinot Date: Fri, 30 Mar 2012 09:11:38 +0000 Subject: [PATCH] freeze.adb (Freeze_Record_Type): For a type with reversed bit order and reversed storage order... 2012-03-30 Thomas Quinot * freeze.adb (Freeze_Record_Type): For a type with reversed bit order and reversed storage order, disable front-end relayout. From-SVN: r185996 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/freeze.adb | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 7b8832d..baeff68 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2012-03-30 Thomas Quinot + + * freeze.adb (Freeze_Record_Type): For a type with reversed bit + order and reversed storage order, disable front-end relayout. + 2012-03-25 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Copy diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index fc76000..3eae40e 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -2161,8 +2161,16 @@ package body Freeze is -- Here is where we do the processing for reversed bit order - else + elsif not Reverse_Storage_Order (Rec) then Adjust_Record_For_Reverse_Bit_Order (Rec); + + -- Case where we have both a reverse Bit_Order and a corresponding + -- Scalar_Storage_Order: leave record untouched, the back-end + -- will take care of required layout conversions. + + else + null; + end if; end if; -- 2.7.4