From: Duncan Sands Date: Wed, 25 Feb 2009 18:10:49 +0000 (+0000) Subject: Check that records with a known constant size are not X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=411c28540454c536519f04a2fde461e91ad1f661;p=oota-llvm.git Check that records with a known constant size are not copied field by LLVM field if the record has a variable sized field in it. The problem is that the LLVM field will not completely cover the variable sized gcc field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65463 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/FrontendAda/Support/element_copy.ads b/test/FrontendAda/Support/element_copy.ads new file mode 100644 index 00000000000..52c6e49275e --- /dev/null +++ b/test/FrontendAda/Support/element_copy.ads @@ -0,0 +1,8 @@ +package Element_Copy is + type SmallInt is range 1 .. 4; + type SmallStr is array (SmallInt range <>) of Character; + type VariableSizedField (D : SmallInt := 2) is record + S : SmallStr (1 .. D) := "Hi"; + end record; + function F return VariableSizedField; +end; diff --git a/test/FrontendAda/element_copy.adb b/test/FrontendAda/element_copy.adb new file mode 100644 index 00000000000..29274fa744a --- /dev/null +++ b/test/FrontendAda/element_copy.adb @@ -0,0 +1,8 @@ +-- RUN: %llvmgcc -S -O2 %s -I%p/Support -o - | grep 105 | count 2 +package body Element_Copy is + function F return VariableSizedField is + X : VariableSizedField; + begin + return X; + end; +end;