未定義動作を含むコードは正当なc++のコードだからコンパイラ的にはNGではない
warningはあくまでコンパイラ側の親切心で出ているだけで規格上警告出せとか無いだろ
depricated属性にしたってヒントでしかない