Любой код является gcc-версие зависимым
1) чтобы при этом не собираться clang'ом - не любой :)
2) обычно gcc по крайней мере ворнингами начинает сыпать прежде чем сломать совместимость, когда код нарушает стандарт, но да, бывает что и сразу ломается. Но см. пункт 1