Gcc6 and ROOT5

Hello
I’ve just recompiled the head of the v5-34-00-patches branch with gcc6 (gcc version 6.2.0 20161005 Ubuntu 16.10) and, although the build succeeds, I got a lot of warnings about misleading indentation:

/home/john/software/sources/root/build-v5-34-00-patches/include/TMatrixTSym.h: In member function virtual void TMatrixTSym::Clear(Option_t*):
/home/john/software/sources/root/build-v5-34-00-patches/include/TMatrixTSym.h:97:60: warning: this else clause does not guard… [-Wmisleading-indentation]
else fElements = 0; this->fNelems = 0; }
^~~~
/home/john/software/sources/root/build-v5-34-00-patches/include/TMatrixTSym.h:97:80: note: …this statement, but the latter is misleadingly indented as if it is guarded by the else
else fElements = 0; this->fNelems = 0; }
^~~~

What is the status of ROOT vs. gcc6? I know already that gcc5 cannot be used to compile ROOT6 (I use clang - is this still valid?) Is gcc6 an improvement on gcc5?

Thanks a lot
John

Full list of warnings follows:
/build-v5-34-00-patches/include/Math/CholeskyDecomp.h:139:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/Math/CholeskyDecomp.h:151:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/Math/CholeskyDecomp.h:377:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/Math/CholeskyDecomp.h:389:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TAttBBox.h:60:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TAttBBox.h:61:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TAttBBox.h:62:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixT.h:122:52: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSparse.h:121:54: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSparse.h:122:54: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSparse.h:123:54: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSparse.h:184:81: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSparse.h:189:81: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSparse.h:194:81: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMatrixTSym.h:97:60: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMVA/MethodANNBase.h:104:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMVA/TNeuron.h:148:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TMVA/TNeuron.h:151:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TProofDebug.h:59:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/build-v5-34-00-patches/include/TVectorT.h:181:44: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:478:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:479:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:480:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:761:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:762:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:763:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:919:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:920:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TColor.cxx:921:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TROOT.cxx:815:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/base/src/TSystem.cxx:1165:15: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/clib/src/Demangle.c:1031:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/core/clib/src/Demangle.c:845:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/geom/geom/src/TGeoPcon.cxx:660:10: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gpad/src/TPad.cxx:1022:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gpad/src/TPad.cxx:1024:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gpad/src/TPad.cxx:1026:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gpad/src/TPad.cxx:1028:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gpad/src/TPad.cxx:1172:13: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/graf/src/TBox.cxx:162:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/graf/src/TBox.cxx:164:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/graf/src/TBox.cxx:166:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/graf/src/TBox.cxx:168:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/graf/src/TPie.cxx:1116:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/graf/src/TPie.cxx:1118:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gviz/src/TGraphEdge.cxx:144:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gviz/src/TGraphEdge.cxx:145:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gviz/src/TGraphEdge.cxx:146:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gviz/src/TGraphEdge.cxx:70:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gviz/src/TGraphEdge.cxx:71:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/gviz/src/TGraphEdge.cxx:72:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TPDF.cxx:2236:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TPDF.cxx:2238:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TPostScript.cxx:2635:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TPostScript.cxx:2637:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TPostScript.cxx:2884:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TPostScript.cxx:2886:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TSVG.cxx:1429:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TSVG.cxx:1431:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TTeXDump.cxx:775:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf2d/postscript/src/TTeXDump.cxx:777:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf3d/g3d/src/TPCON.cxx:132:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf3d/g3d/src/TPointSet3D.cxx:162:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf3d/g3d/src/TPointSet3D.cxx:172:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf3d/g3d/src/TTUBE.cxx:132:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/graf3d/g3d/src/TTUBS.cxx:88:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/gui/gui/src/TGFileBrowser.cxx:1197:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/gui/gui/src/TGFSContainer.cxx:651:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/gui/gui/src/TGFSContainer.cxx:664:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/histpainter/src/TGraphPainter.cxx:3228:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/histpainter/src/TGraphPainter.cxx:3230:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/histpainter/src/THistPainter.cxx:9222:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/histpainter/src/THistPainter.cxx:9224:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2679:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2689:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2716:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2718:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2720:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2722:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2724:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2726:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2729:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2731:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2736:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:2739:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4158:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4161:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4185:13: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4195:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4197:25: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4202:13: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TFormula.cxx:4205:13: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/hist/hist/src/TLimit.cxx:267:10: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/matrix/src/TMatrixDEigen.cxx:430:13: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/matrix/src/TMatrixTBase.cxx:861:10: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/matrix/src/TMatrixTSparse.cxx:188:10: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/minuit/src/TFitter.cxx:638:10: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/minuit/src/TFitter.cxx:690:10: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/minuit/src/TLinearFitter.cxx:432:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/minuit/src/TLinearFitter.cxx:444:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/minuit/src/TLinearFitter.cxx:458:7: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/math/mlp/src/TMLPAnalyzer.cxx:273:4: warning: this ‘for’ clause does not guard… [-Wmisleading-indentation]
/root.git/roofit/roostats/src/HypoTestResult.cxx:132:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/roofit/roostats/src/HypoTestResult.cxx:133:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/roofit/roostats/src/HypoTestResult.cxx:134:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/roofit/roostats/src/HypoTestResult.cxx:135:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/roofit/roostats/src/HypoTestResult.cxx:136:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/tmva/src/MethodBDT.cxx:686:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/tmva/src/PDEFoam.cxx:199:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/tmva/src/PDEFoam.cxx:200:4: warning: this ‘if’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/treeplayer/src/TTreeFormula.cxx:4025:22: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/treeplayer/src/TTreeFormula.cxx:4034:41: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/treeplayer/src/TTreeFormula.cxx:4060:33: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/treeplayer/src/TTreeFormula.cxx:4062:33: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/treeplayer/src/TTreeFormula.cxx:4073:51: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/treeplayer/src/TTreeFormula.cxx:4075:52: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]
/root.git/tree/tree/src/TTreeCacheUnzip.cxx:1130:6: warning: this ‘else’ clause does not guard… [-Wmisleading-indentation]

Hi John,

Since we froze v5, we only plan to update it for gcc 6 if there is a blocker (those warning are not blocker).

v6.08 supports the new GCC 5/6 ABI and thus works ‘out of the box’ [Note that v6.06 already ‘worked’ with gcc 5 if you disabled the new ABI].

Cheers,
Philippe.