blob: 46e6d653f9bdb65db1afd9af444c8c0e51dead15 (
plain) (
tree)
|
|
// impossible(*) to use safely
// removed in C11
#pragma GCC poison gets
// TODO fill in as they are removed from source code:
// double (use a fixed class)
#pragma GCC poison float
// Local time is forbidden.
#pragma GCC poison timelocal // timegm
#pragma GCC poison mktime // timegm
#pragma GCC poison localtime // gmtime
#pragma GCC poison localtime_r // gmtime_r
#pragma GCC poison time // TimeT::now() or gettick()
// Avoid manual allocations.
// Use some sort of managed container, or at least dumb_ptr
// new is needed when resetting unique_ptr.
// No it isn't. It doesn't matter if it's a little more verbose; it's cleaner.
//#define really_new1 new
// delete is needed for unique_ptr's deleter.
#define really_delete1 delete
#pragma GCC poison new
#pragma GCC poison delete
#pragma GCC poison malloc
#pragma GCC poison calloc
#pragma GCC poison realloc
#pragma GCC poison free
#pragma GCC poison strdup
#pragma GCC poison strndup
// complete list of glibc whose results may need to be free()d
// not believed to be used
#pragma GCC poison posix_memalign
#pragma GCC poison aligned_alloc
#pragma GCC poison memalign
#pragma GCC poison valloc
#pragma GCC poison pvalloc
#pragma GCC poison asprintf
#pragma GCC poison vasprintf
#pragma GCC poison canonicalize_file_name
#pragma GCC poison cfree
#pragma GCC poison open_memstream
#pragma GCC poison open_wmemstream
// *scanf %ms is done very carefully.
//#pragma GCC poison scanf
//#pragma GCC poison fscanf
//#pragma GCC poison sscanf
//#pragma GCC poison vscanf
//#pragma GCC poison vsscanf
//#pragma GCC poison vfscanf
#pragma GCC poison getcwd
#pragma GCC poison get_current_dir_name
#pragma GCC poison malloc_get_state
#pragma GCC poison realpath
#pragma GCC poison tempnam
#pragma GCC poison wcsdup
#if 0
#pragma GCC poison memcpy
#pragma GCC poison memmove
#pragma GCC poison memset
#endif
|