diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-07-02 06:40:01 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2017-07-02 07:09:46 +0800 |
commit | b615b01449984b21d7615d6daf70455a56e7bdbc (patch) | |
tree | 865afcff8be40f538e97045f5934653ffce82d28 /libsolidity/parsing/UndefMacros.h | |
parent | d230048dc8385744203528115aa9bb5c0fba4339 (diff) | |
download | dexon-solidity-b615b01449984b21d7615d6daf70455a56e7bdbc.tar.gz dexon-solidity-b615b01449984b21d7615d6daf70455a56e7bdbc.tar.zst dexon-solidity-b615b01449984b21d7615d6daf70455a56e7bdbc.zip |
Move UndefMacros from libdevcore to libsolidity/parsing
Diffstat (limited to 'libsolidity/parsing/UndefMacros.h')
-rw-r--r-- | libsolidity/parsing/UndefMacros.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libsolidity/parsing/UndefMacros.h b/libsolidity/parsing/UndefMacros.h new file mode 100644 index 00000000..d96e242e --- /dev/null +++ b/libsolidity/parsing/UndefMacros.h @@ -0,0 +1,46 @@ +/* + This file is part of solidity. + + solidity is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + solidity is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with solidity. If not, see <http://www.gnu.org/licenses/>. +*/ +/** @file UndefMacros.h + * @author Lefteris <lefteris@ethdev.com> + * @date 2015 + * + * This header should be used to #undef some really evil macros defined by + * windows.h which result in conflict with our Token.h + */ +#pragma once + +#if defined(_MSC_VER) || defined(__MINGW32__) + +#undef DELETE +#undef IN +#undef VOID +#undef THIS +#undef CONST + +// Conflicting define on MinGW in windows.h +// windows.h(19): #define interface struct +#ifdef interface +#undef interface +#endif + +#elif defined(DELETE) || defined(IN) || defined(VOID) || defined(THIS) || defined(CONST) || defined(interface) + +#error "The preceding macros in this header file are reserved for V8's "\ +"TOKEN_LIST. Please add a platform specific define above to undefine "\ +"overlapping macros." + +#endif |