new のオーバーロードして メモリ確保時のファイル、行番号を
管理できるようにするものを作っているのですが、

#include <new>
void* operator new( size_t size , const char *file , unsigned line );
とnewをオーバーロードして

呼び出し側で
char hoge = new( _FILE_ , __LINE__ )char;
と書いてコンパイルしたところ

下のようなワーニングメッセージが出てしまいます。

warning C4291: 'void *__cdecl operator new(unsigned int,const char *,unsigned int)' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。

これのなにがまずいのでしょうか?