aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52493.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52493.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52493.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52493.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52493.c
new file mode 100644
index 000000000..b04ac5c17
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr52493.c
@@ -0,0 +1,38 @@
+/* { dg-do compile } */
+
+struct Time {
+ long int sec;
+ long usec;
+};
+struct Flow {
+ unsigned short iif;
+ struct Time mtime;
+};
+struct NetFlow {
+ unsigned MaxFlows;
+ unsigned HeaderFields;
+ unsigned short *HeaderFormat;
+};
+static struct NetFlow *netflow;
+static struct Time start_time;
+static unsigned char emit_packet[1500];
+inline long int cmpmtime(struct Time *t1, struct Time *t2)
+{
+ return (t1->sec - t2->sec) * 1000 + (t1->usec - t2->usec) / 1000;
+}
+static void fill(int fields, unsigned short *format,
+ struct Flow *flow, void *p)
+{
+ int i;
+ for (i = 0; i < fields; i++)
+ if (format[i] == 21)
+ {
+ unsigned int __v;
+ __v = cmpmtime(&flow->mtime, &start_time);
+ *((unsigned int *) p) = __v;
+ }
+}
+void emit_thread()
+{
+ fill(netflow->HeaderFields, netflow->HeaderFormat, 0, &emit_packet);
+}