An example for which the TYPE_SIZE was being set from
authorDuncan Sands <baldrick@free.fr>
Thu, 3 Jan 2008 00:26:42 +0000 (00:26 +0000)
committerDuncan Sands <baldrick@free.fr>
Thu, 3 Jan 2008 00:26:42 +0000 (00:26 +0000)
the initial value, while the type fields were not (this
is a qualified union type, so not all fields are always
present).  This resulted in the size of the corresponding
LLVM type being larger than the gcc TYPE_SIZE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45522 91177308-0d34-0410-b5e6-96231b3b80d8

test/FrontendAda/init_size.ads [new file with mode: 0644]

diff --git a/test/FrontendAda/init_size.ads b/test/FrontendAda/init_size.ads
new file mode 100644 (file)
index 0000000..1d76ba2
--- /dev/null
@@ -0,0 +1,12 @@
+-- RUN: %llvmgcc -c %s
+package Init_Size is
+   type T (B : Boolean := False) is record
+      case B is
+         when False =>
+            I : Integer;
+         when True =>
+            J : Long_Long_Integer; -- Bigger than I
+      end case;
+   end record;
+   A_T : constant T := (False, 0);
+end;