[LLVMbugs] [Bug 18529] New: Clang warns unused volatile global variable

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jan 17 23:36:34 PST 2014


http://llvm.org/bugs/show_bug.cgi?id=18529

            Bug ID: 18529
           Summary: Clang warns unused volatile global variable
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: chengniansun at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Clang warns unused volatile global variable. As specified in the C standard,
the keyword "volatile" indicates that the variable may be used in a way UNKNOWN
to the compiler. 

In the following instructions, I have a tiny program with a volatile global
variable. Even the program is closed with a main function, the developers are
still be able to reference this variable with its name after compilation and
inject assembly code into the assembly file. Therefore, this global variable is
not unused and should not be warned.   

$: cat unused-var.c
static volatile int a = 1;
int main() {return 0;}
$: clang-trunk -Weverything -std=c99 -pedantic unused-var.c
unused-var.c:1:21: warning: unused variable 'a' [-Wunused-variable]
static volatile int a = 1;
                    ^
1 warning generated.
$: clang-trunk --version
clang version 3.5 (trunk 198918)
Target: x86_64-unknown-linux-gnu
Thread model: posix
$: gcc-trunk -Wall -Wextra -std=c99 -pedantic unused-var.c
$: gcc-trunk --version
gcc-trunk (GCC) 4.9.0 20140109 (experimental)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140118/926e7c95/attachment.html>


More information about the llvm-bugs mailing list