openblt/Host/Source/BootCommander/lint/msvc/co-msc100.h

43 lines
1.6 KiB
C

// ---------------------------------------------------------------------
// This file is provided by Gimpel Software (www.gimpel.com) for use with
// its products PC-lint and FlexeLint.
//
// Redistribution and use of this file, with or without modification, is
// permitted provided that any such redistribution retains this notice.
// ---------------------------------------------------------------------
#ifndef LINT_SUPPORT_CO_MSC100_H_
#define LINT_SUPPORT_CO_MSC100_H_
// co-msc100.h --
// This header is automatically included in every module if you use
// co-msc100.lnt. (There is a -header(co-msc100.h) option therein
// for this purpose.)
// Microsoft's C++11 implementation does not yet include built-in support
// for the new character types, so we need to disable the relevant
// keywords here. (This must be done before the inclusion of any other
// header file because Microsoft's library headers contain declarations of
// typedef names with the same spelling.)
//lint -rw(char16_t,char32_t)
// Next we must compensate for the fact that class typeinfo is available
// for use in the MSC compilers without an explicit definition. According
// to the standard this class definition is not (available by default).
#ifdef __cplusplus
#include <typeinfo>
#else // C mode
// co-msc100.lnt defines some macros that the Microsoft compiler defines
// in C++ modes but not in C mode; we must un-define them here:
#undef _CPPRTTI
#undef _NATIVE_WCHAR_T_DEFINED
#undef _WCHAR_T_DEFINED
#undef _NATIVE_NULLPTR_SUPPORTED
#endif
#endif /* LINT_SUPPORT_CO_MSC100_H_ */