aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-09-04 17:05:39 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2005-09-04 10:05:39 -0700
commitca59f04b870c47814d9d81bff458a85579d46d12 (patch)
treea90979153c5fafc3922a43e525762804418cabb3 /gcc
parent1c9ef36d01436421d7f70b19bb1c3724e4226bd7 (diff)
downloadgcc-ca59f04b870c47814d9d81bff458a85579d46d12.zip
gcc-ca59f04b870c47814d9d81bff458a85579d46d12.tar.gz
gcc-ca59f04b870c47814d9d81bff458a85579d46d12.tar.bz2
re PR libobjc/23108 (alignment bug in libobjc/archive.c)
2005-09-04 Andrew Pinski <pinskia@physics.uc.edu> Rasmus Hahn <rassahah@neofonie.de> PR libobjc/23108 * objc.dg/type-stream-1.m: New test. 2005-09-04 Andrew Pinski <pinskia@physics.uc.edu> Rasmus Hahn <rassahah@neofonie.de> PR libobjc/23108 * archive.c (objc_write_type): Correct the element offset. (objc_read_type): Likewise. Co-Authored-By: Rasmus Hahn <rassahah@neofonie.de> From-SVN: r103832
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/objc.dg/type-stream-1.m25
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c849daa..d9a5e53 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2005-09-04 Andrew Pinski <pinskia@physics.uc.edu>
+ Rasmus Hahn <rassahah@neofonie.de>
+
+ PR libobjc/23108
+ * objc.dg/type-stream-1.m: New test.
+
2005-09-04 Tobias Schl"uter <tobias.shclueter@physik.uni-muenchen.de>
PR fortran/23661
diff --git a/gcc/testsuite/objc.dg/type-stream-1.m b/gcc/testsuite/objc.dg/type-stream-1.m
new file mode 100644
index 0000000..edc04e6
--- /dev/null
+++ b/gcc/testsuite/objc.dg/type-stream-1.m
@@ -0,0 +1,25 @@
+/* { dg-options "-fgnu-runtime" } */
+/* { dg-do run } */
+#include <objc/typedstream.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int main (void)
+{
+ FILE *f; TypedStream *ts;
+ struct T { int a, b; } x = { 1, 2 };
+ f = fopen ("foo", "w"); ts = objc_open_typed_stream (f, OBJC_WRITEONLY);
+ objc_write_type (ts, @encode(struct T), &x);
+ objc_close_typed_stream (ts); fclose (f);
+ f = fopen ("foo", "r"); ts = objc_open_typed_stream (f, OBJC_READONLY);
+ struct T y;
+ objc_read_type (ts, @encode(struct T), &y);
+ if (y.a != 1)
+ abort ();
+ if (y.b != 2)
+ abort ();
+ objc_close_typed_stream (ts); fclose (f);
+ remove ("foo");
+ return 0;
+}
+