[hackers] [scc] [cc1] Add test065 || Roberto E. Vargas Caballero

From: <git_AT_suckless.org>
Date: Tue, 9 Aug 2016 17:12:25 +0200 (CEST)

commit 4ae875181944ff1af246660aa69e13053aef7ec6
Author: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
AuthorDate: Tue Aug 9 17:08:15 2016 +0200
Commit: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
CommitDate: Tue Aug 9 17:11:40 2016 +0200

    [cc1] Add test065
    
    This test tests really strange situations about pointers, decay,
    and the content operator. If you someday in your life see a code
    like this in production you should kill to the author.

diff --git a/cc1/tests/test065.c b/cc1/tests/test065.c
new file mode 100644
index 0000000..c7b6e65
--- /dev/null
+++ b/cc1/tests/test065.c
_AT_@ -0,0 +1,66 @@
+/* See LICENSE file for copyright and license details. */
+
+/*
+name: TEST065
+description: Test decay mixed with * operators
+error:
+test065.c:65: error: decrement of pointer to an incomplete type
+test065.c:65: error: invalid use of undefined type
+test065.c:66: warning: 'argv' defined but not used
+output:
+G7 I F "main
+{
+A1 I "argc
+A5 P "argv
+\
+V8 I #N1
+A9 V8 "v
+A12 P "p
+A14 P "f1
+A15 P "f2
+ A9 #I0 :I
+ A12 A9 'P :P
+ A14 G7 'P :P
+ A15 G7 'P :P
+ y L18 A1 #I0 !I
+ h #I1
+L18
+ y L19 G7 #I0 pI #P0 pP cI #I0 =I
+ h #I2
+L19
+ y L20 A14 _AT_F #I0 pI #P0 pP cI #I0 =I
+ h #I3
+L20
+ y L21 A15 _AT_F #I0 pI #P0 pP cI #I0 =I
+ h #I4
+L21
+ y L22 A12 _AT_I #I0 !I
+ h #I0
+L22
+*/
+
+int
+main(int argc, char *argv[])
+{
+ int v[1];
+ int (*p)[];
+ int (*f1)(int ,char *[]);
+ int (*f2)(int ,char *[]);
+
+ v[0] = 0;
+ p = &v;
+ f1 = &main;
+ f2 = main;
+ if (argc == 0)
+ return 1;
+ if ((****main)(0, 0))
+ return 2;
+ if ((****f1)(0, 0))
+ return 3;
+ if ((****f2)(0, 0))
+ return 4;
+ if (!(*p)[0])
+ return 0;
+
+ return (*++p)[0] || p[1][0];
+}
Received on Tue Aug 09 2016 - 17:12:25 CEST

This archive was generated by hypermail 2.3.0 : Tue Aug 09 2016 - 17:24:18 CEST