aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2003-05-05 18:29:29 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2003-05-05 18:29:29 +0000
commit36b29d7dd1084ce44358f648aebef3b285bed869 (patch)
treec456da0cf15e725e22d92f8a216d6d4248db79c8 /gcc
parent9e5f281f99de583a0ca9d50d984bd3a33910f430 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/unused-5.c8
-rw-r--r--gcc/toplev.c2
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. */