Project

General

Profile

Bug #7756

clang 4.2 sees through UNINITIALIZED_VAR macro, gives warning

Added by drbrain (Eric Hodel) over 7 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
-
Backport:
[ruby-core:51742]

Description

=begin

In clang 3.2, the UNINITIALIZED_VAR macro does not prevent the compiler from producing a warning.

Apple clang 3.2:

$ clang -v
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.2.1
Thread model: posix

When compiling thread.c:

compiling ../trunk/thread.c
../trunk/thread.c:3261:34: warning: variable 'orig_read' is uninitialized when
used within its own initialization [-Wuninitialized]
rb_fdset_t UNINITIALIZED_VAR(orig_read);
~~~~~~~~
../trunk/vm_core.h:119:34: note: expanded from macro 'UNINITIALIZED_VAR'
#define UNINITIALIZED_VAR(x) x = x
^
../trunk/thread.c:3262:34: warning: variable 'orig_write' is uninitialized when
used within its own initialization [-Wuninitialized]
rb_fdset_t UNINITIALIZED_VAR(orig_write);
~~~~~~~~~
../trunk/vm_core.h:119:34: note: expanded from macro 'UNINITIALIZED_VAR'
#define UNINITIALIZED_VAR(x) x = x
^
../trunk/thread.c:3263:34: warning: variable 'orig_except' is uninitialized when
used within its own initialization [-Wuninitialized]
rb_fdset_t UNINITIALIZED_VAR(orig_except);
~~~~~~~~~~
../trunk/vm_core.h:119:34: note: expanded from macro 'UNINITIALIZED_VAR'
#define UNINITIALIZED_VAR(x) x = x
^
3 warnings generated.

=end

Also available in: Atom PDF