http://llvm.org/bugs/show_bug.cgi?id=9008
Summary: false unused variable warning when variable
exclusively used within sizeof
Product: clang
Version: 2.8
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: Static Analyzer
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
// Compile with :
// clang -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement
-Wstrict-prototypes -Wtype-limits -Wwrite-strings -Wpointer-arith test.c
#include <stdio.h>
static const char *blah[] = {"foo"};
#define foobar sizeof(blah)
int main(void)
{
printf("hello world, %lu", foobar);
return 0;
}
Originally noticed when compiling Wine's regedit:
clang -m32 -c -I. -I. -I../../include -I../../include -I../../include/msvcrt
-DWINE_STRICT_PROTOTYPES -DNO_LIBWINE_PORT -D_REENTRANT -fPIC -Wall -pipe
-fno-strict-aliasing -Wdeclaration-after-statement -Wstrict-prototypes
-Wtype-limits -Wwrite-strings -Wpointer-arith -g -O2 -fno-builtin -o regproc.o
regproc.c
regproc.c:40:20: warning: unused variable 'reg_class_names' [-Wunused-variable]
static const CHAR *reg_class_names[] = {
^
1 warning generated.
relevant code:
static const CHAR *reg_class_names[] = { "HKEY_LOCAL_MACHINE", "HKEY_USERS",
"HKEY_CLASSES_ROOT","HKEY_CURRENT_CONFIG", "HKEY_CURRENT_USER",
"HKEY_DYN_DATA"};
#define REG_CLASS_NUMBER (sizeof(reg_class_names) / sizeof(reg_class_names[0]))
austin@midna:~$ clang --version
clang version 2.8 (branches/release_28)
Target: x86_64-pc-linux-gnu
Thread model: posix
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs