[hackers] [scc] [cc1] Do not allow comments between different files || Roberto E. Vargas Caballero

From: <git_AT_suckless.org>
Date: Wed, 22 Jun 2016 11:22:20 +0200 (CEST)

commit 983e4cd19bb2cae781d84d6e75143f9a76935536
Author: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
AuthorDate: Wed Jun 22 11:18:47 2016 +0200
Commit: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
CommitDate: Wed Jun 22 11:18:47 2016 +0200

    [cc1] Do not allow comments between different files
    
    C89 says: 'A source file shall not end in a partial
    preprocessing token or comment', and C99 says:
    Must a comment be contained within one #include file? (Yes.).
    In the case of C99, otherwise is an UB. We think the best
    option here is giving an error.

diff --git a/cc1/lex.c b/cc1/lex.c
index 6f89352..7f4a6f8 100644
--- a/cc1/lex.c
+++ b/cc1/lex.c
_AT_@ -167,16 +167,17 @@ comment(int type)
 repeat:
         do {
                 if (!c)
- delinput();
+ goto unterminated;
         } while (!eof && (c = readchar()) != type);
 
- if (eof) {
- errorp("unterminated comment");
- return;
- }
-
+ if (eof)
+ goto unterminated;
         if (type == '*' && (c = readchar()) != '/')
                 goto repeat;
+ return;
+
+unterminated:
+ errorp("unterminated comment");
 }
 
 static int
diff --git a/cc1/tests/test063.c b/cc1/tests/test063.c
index b4d7f28..1082f49 100644
--- a/cc1/tests/test063.c
+++ b/cc1/tests/test063.c
_AT_@ -4,7 +4,7 @@
 name: TEST063
 description: Test a comment that goes beyond of the end of an included file
 error:
-test063.c:12: error: unterminated comment
+test063.h:9: error: unterminated comment
 test063.c:12: error: #endif expected
 output:
 */
Received on Wed Jun 22 2016 - 11:22:20 CEST

This archive was generated by hypermail 2.3.0 : Wed Jun 22 2016 - 11:24:16 CEST