Module Name: src Committed By: rillig Date: Thu Jul 15 17:48:10 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: expr_precedence.c expr_precedence.exp Log Message: tests/lint: explain global variables in __attribute__ To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint1/expr_precedence.c \ src/tests/usr.bin/xlint/lint1/expr_precedence.exp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/usr.bin/xlint/lint1/expr_precedence.c diff -u src/tests/usr.bin/xlint/lint1/expr_precedence.c:1.2 src/tests/usr.bin/xlint/lint1/expr_precedence.c:1.3 --- src/tests/usr.bin/xlint/lint1/expr_precedence.c:1.2 Thu Jul 15 17:20:58 2021 +++ src/tests/usr.bin/xlint/lint1/expr_precedence.c Thu Jul 15 17:48:10 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: expr_precedence.c,v 1.2 2021/07/15 17:20:58 rillig Exp $ */ +/* $NetBSD: expr_precedence.c,v 1.3 2021/07/15 17:48:10 rillig Exp $ */ # 3 "expr_precedence.c" /* @@ -22,7 +22,15 @@ int init_syntactically_ok = var = 1 ? 2 * don't make sense at that point. */ void __attribute__((format(printf, - /* expect+2: error: 'var' undefined [99] */ /* XXX: why? */ + /* + * Inside of __attribute__((...)), symbol lookup works differently. For + * example, 'printf' is a keyword, and since all arguments to + * __attribute__ are constant expressions, looking up global variables + * would not make sense. Therefore, 'var' is undefined. + * + * See lex.c, function 'search', keyword 'attron'. + */ + /* expect+2: error: 'var' undefined [99] */ /* expect+1: syntax error '=' [249] */ var = 1, /* Syntactically ok, must be a constant expression though. */ Index: src/tests/usr.bin/xlint/lint1/expr_precedence.exp diff -u src/tests/usr.bin/xlint/lint1/expr_precedence.exp:1.2 src/tests/usr.bin/xlint/lint1/expr_precedence.exp:1.3 --- src/tests/usr.bin/xlint/lint1/expr_precedence.exp:1.2 Thu Jul 15 17:20:58 2021 +++ src/tests/usr.bin/xlint/lint1/expr_precedence.exp Thu Jul 15 17:48:10 2021 @@ -1,4 +1,4 @@ expr_precedence.c(15): error: syntax error '4' [249] expr_precedence.c(18): error: non-constant initializer [177] -expr_precedence.c(27): error: 'var' undefined [99] -expr_precedence.c(27): error: syntax error '=' [249] +expr_precedence.c(35): error: 'var' undefined [99] +expr_precedence.c(35): error: syntax error '=' [249]