http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57416

--- Comment #6 from Frank Bergemann <FBergemann at web dot de> ---
the error depends on optimization level.
-O0 has the problem
-O1, -02, -03 do not have the problem.
For those i get - even for the original buggy code:

make all 
Building file: ../main.cpp
Invoking: GCC C++ Compiler
/opt/gcc-4.8.0/bin/g++ -O1 -g3 -Wall -c -std=c++11 -MMD -MP -MF"main.d"
-MT"main.d" -o "main.o" "../main.cpp"
../main.cpp: In function ‘void func3(PARENTDATA&) [with PARENTDATA =
func2(PARENTDATA&) [with PARENTDATA = func1(PARENTDATA&) [with PARENTDATA =
Nothing]::Data]::Data]’:
../main.cpp:23:47: warning: ‘p_parent_data’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
  std::cout << "parent_data.parent_data.x = "  <<
data.parent_data.parent_data.x << std::endl;
                                               ^
../main.cpp: In function ‘void func2(PARENTDATA&) [with PARENTDATA =
func1(PARENTDATA&) [with PARENTDATA = Nothing]::Data]’:
../main.cpp:29:9: warning: ‘p_parent_data’ is used uninitialized in this
function [-Wuninitialized]
Finished building: ../main.cpp

Building target: RetainRecallOld
Invoking: GCC C++ Linker
/opt/gcc-4.8.0/bin/g++  -o "RetainRecallOld"  ./main.o   
  struct Data
         ^
../main.cpp: In function ‘void func1(PARENTDATA&) [with PARENTDATA = Nothing]’:
../main.cpp:43:9: warning: ‘p_parent_data’ is used uninitialized in this
function [-Wuninitialized]
  struct Data
         ^
Finished building target: RetainRecallOld


**** Build Finished ****

Reply via email to