1 // Copyright 2021, Kay Hayen, mailto:kay.hayen@gmail.com 2 // 3 // Part of "Nuitka", an optimizing Python compiler that is compatible and 4 // integrates with CPython, but also works on its own. 5 // 6 // Licensed under the Apache License, Version 2.0 (the "License"); 7 // you may not use this file except in compliance with the License. 8 // You may obtain a copy of the License at 9 // 10 // http://www.apache.org/licenses/LICENSE-2.0 11 // 12 // Unless required by applicable law or agreed to in writing, software 13 // distributed under the License is distributed on an "AS IS" BASIS, 14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 // See the License for the specific language governing permissions and 16 // limitations under the License. 17 // 18 /* These are defines used in floordiv code. 19 20 */ 21 22 // This file is included from another C file, help IDEs to still parse it on 23 // its own. 24 #ifdef __IDE_ONLY__ 25 #include "nuitka/prelude.h" 26 #endif 27 28 #include <float.h> 29 30 /* Check if unary negation would not fit into long */ 31 #define UNARY_NEG_WOULD_OVERFLOW(x) ((x) < 0 && (unsigned long)(x) == 0 - (unsigned long)(x)) 32 /* This is from pyport.h */ 33 #define WIDTH_OF_ULONG (CHAR_BIT * SIZEOF_LONG) 34