diff options
author | Geoffrey Keating <geoffk@apple.com> | 2003-05-05 18:29:29 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2003-05-05 18:29:29 +0000 |
commit | 36b29d7dd1084ce44358f648aebef3b285bed869 (patch) | |
tree | c456da0cf15e725e22d92f8a216d6d4248db79c8 | |
parent | 9e5f281f99de583a0ca9d50d984bd3a33910f430 (diff) | |
download | gcc-36b29d7dd1084ce44358f648aebef3b285bed869.zip gcc-36b29d7dd1084ce44358f648aebef3b285bed869.tar.gz gcc-36b29d7dd1084ce44358f648aebef3b285bed869.tar.bz2 |
toplev.c (check_global_declarations): Suppress not-used warning for volatile variables.
2003-05-05 Geoffrey Keating <geoffk@apple.com>
* toplev.c (check_global_declarations): Suppress not-used warning
for volatile variables.
Index: testsuite/ChangeLog
2003-05-05 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/unused-5.c: New test.
From-SVN: r66493
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/unused-5.c | 8 | ||||
-rw-r--r-- | gcc/toplev.c | 2 |
4 files changed, 19 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f8cad8..4d765a3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-05-05 Geoffrey Keating <geoffk@apple.com> + + * toplev.c (check_global_declarations): Suppress not-used warning + for volatile variables. + 2003-05-05 Olivier Hainque <hainque@act-europe.fr> * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c86b921..92a7679 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-05-05 Geoffrey Keating <geoffk@apple.com> + + * gcc.dg/unused-5.c: New test. + 2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> PR c++/10496 diff --git a/gcc/testsuite/gcc.dg/unused-5.c b/gcc/testsuite/gcc.dg/unused-5.c new file mode 100644 index 0000000..5ccc3f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/unused-5.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-Wunused" } */ +/* { dg-final { scan-assembler "string_to_look_for" } } */ + +/* 'volatile' variables get output and don't produce a warning about being + unused. */ +static volatile char string[] + = "string_to_look_for"; /* { dg-bogus "not used" } */ diff --git a/gcc/toplev.c b/gcc/toplev.c index 30bae57..8dcc44c 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2132,6 +2132,8 @@ check_global_declarations (vec, len) && ! TREE_USED (DECL_NAME (decl)) && ! DECL_EXTERNAL (decl) && ! TREE_PUBLIC (decl) + /* A volatile variable might be used in some non-obvious way. */ + && ! TREE_THIS_VOLATILE (decl) /* Global register variables must be declared to reserve them. */ && ! (TREE_CODE (decl) == VAR_DECL && DECL_REGISTER (decl)) /* Otherwise, ask the language. */ |