This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[patch] New c-torture testcases.


These three tests came up on a new port that will be contributed
in the near future. Maybe they're also useful in other ports.

They have been approved by Geoff Keating. Unless someone objects,
I will be checking them in the trunk over the next few days.

Diego.


2001-05-21  Diego Novillo  <dnovillo@redhat.com>

	* gcc.c-torture/compile/20010518-2.c: New file.
	* gcc.c-torture/execute/20010518-1.c: New file.
	* gcc.c-torture/execute/20010518-2.c: New file.

Index: gcc.c-torture/compile/20010518-2.c
===================================================================
RCS file: 20010518-2.c
diff -N 20010518-2.c
*** /dev/null	Tue May  5 13:32:27 1998
--- 20010518-2.c	Sun May 20 21:17:10 2001
***************
*** 0 ****
--- 1,13 ----
+ /* Large static storage.  */
+ 
+ #include <limits.h>
+ 
+ static volatile char chars_1[INT_MAX / 2];
+ static volatile char chars_2[1];
+ 
+ int
+ foo (void)
+ {
+   chars_1[10] = 'y';
+   chars_2[0] = 'x';
+ }
Index: gcc.c-torture/execute/20010518-1.c
===================================================================
RCS file: 20010518-1.c
diff -N 20010518-1.c
*** /dev/null	Tue May  5 13:32:27 1998
--- 20010518-1.c	Sun May 20 21:17:10 2001
***************
*** 0 ****
--- 1,28 ----
+ /* Leaf functions with many arguments.  */
+ 
+ int
+ add (int a,
+     int b,
+     int c,
+     int d,
+     int e,
+     int f,
+     int g,
+     int h,
+     int i,
+     int j,
+     int k,
+     int l,
+     int m)
+ {
+   return a+b+c+d+e+f+g+h+i+j+k+l+m;
+ }
+ 
+ int
+ main(void)
+ {
+   if (add (1,2,3,4,5,6,7,8,9,10,11,12,13) != 91)
+     abort ();
+ 
+   exit (0);
+ }
Index: gcc.c-torture/execute/20010518-2.c
===================================================================
RCS file: 20010518-2.c
diff -N 20010518-2.c
*** /dev/null	Tue May  5 13:32:27 1998
--- 20010518-2.c	Sun May 20 21:17:10 2001
***************
*** 0 ****
--- 1,38 ----
+ /* Mis-aligned packed structures.  */
+ 
+ typedef struct
+ {
+   char b0;
+   char b1;
+   char b2;
+   char b3;
+   char b4;
+   char b5;
+ } __attribute__ ((packed)) b_struct;
+ 
+ 
+ typedef struct
+ {
+   short a;
+   long b;
+   short c;
+   short d;
+   b_struct e;
+ } __attribute__ ((packed)) a_struct;
+ 
+ 
+ int
+ main(void)
+ {
+   volatile a_struct *a;
+   volatile a_struct b;
+ 
+   a = &b;
+   *a = (a_struct){1,2,3,4};
+   a->e.b4 = 'c';
+ 
+   if (a->a != 1 || a->b != 2 || a->c != 3 || a->d != 4 || a->e.b4 != 'c')
+     abort ();
+ 
+   exit (0);
+ }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]