# HG changeset patch # User Mario de Sousa # Date 1342626996 -3600 # Node ID 2989051a0a64ae8369aaadbc25f539be64bb1c9d # Parent a45a62dd6df9c28d38ab759cdf36a81dcddf3167 Fixing includes to define INTxx_MAX etc... diff -r a45a62dd6df9 -r 2989051a0a64 main.hh --- a/main.hh Sat Jul 14 11:09:26 2012 +0200 +++ b/main.hh Wed Jul 18 16:56:36 2012 +0100 @@ -34,8 +34,38 @@ #ifndef _MAIN_HH #define _MAIN_HH + + /* Get the definition of INT16_MAX, INT16_MIN, UINT64_MAX, INT64_MAX, INT64_MIN, ... */ + +#define __STDC_LIMIT_MACROS /* required when including from C++ source code. */ +#include + +#ifndef UINT64_MAX + #define UINT64_MAX (std::numeric_limits< uint64_t >::max()) +#endif +#ifndef INT64_MAX + #define INT64_MAX (std::numeric_limits< int64_t >::max()) +#endif +#ifndef INT64_MIN + #define INT64_MIN (std::numeric_limits< int64_t >::min()) +#endif + +#if (real64_t == float) + #define HUGE_VAL64 HUGE_VALF +#elif (real64_t == double) + #define HUGE_VAL64 HUGE_VAL +#elif (real64_t == long_double) + #define HUGE_VAL64 HUGE_VALL +#else + #error Could not determine which data type is being used for real64_t (defined in absyntax.hh). Aborting! +#endif + + + + /* Function used throughout the code --> used to report failed assertions (i.e. internal compiler errors)! */ - +#include /* required for NULL */ + #define ERROR error_exit(__FILE__,__LINE__) #define ERROR_MSG(msg, ...) error_exit(__FILE__,__LINE__, msg) // #define ERROR_MSG(msg, ...) error_exit(__FILE__,__LINE__, msg, __VA_ARGS__) diff -r a45a62dd6df9 -r 2989051a0a64 stage3/constant_folding.cc --- a/stage3/constant_folding.cc Sat Jul 14 11:09:26 2012 +0200 +++ b/stage3/constant_folding.cc Wed Jul 18 16:56:36 2012 +0100 @@ -126,35 +126,7 @@ // #include /* required for atoi() */ #include /* required for errno */ - - -#define __STDC_LIMIT_MACROS /* required for UINT64_MAX, INT64_MAX, INT64_MIN, ... */ -#include /* required for UINT64_MAX, INT64_MAX, INT64_MIN, ... */ - - - -#ifndef UINT64_MAX - #define UINT64_MAX (std::numeric_limits< uint64_t >::max()) -#endif -#ifndef INT64_MAX - #define INT64_MAX (std::numeric_limits< int64_t >::max()) -#endif -#ifndef INT64_MIN - #define INT64_MIN (std::numeric_limits< int64_t >::min()) -#endif - -#if (real64_t == float) - #define HUGE_VAL64 HUGE_VALF -#elif (real64_t == double) - #define HUGE_VAL64 HUGE_VAL -#elif (real64_t == long_double) - #define HUGE_VAL64 HUGE_VALL -#else - #error Could not determine which data type is being used for real64_t (defined in absyntax.hh). Aborting! -#endif - - - +#include <../main.hh> /* required for UINT64_MAX, INT64_MAX, INT64_MIN, ... */ diff -r a45a62dd6df9 -r 2989051a0a64 stage3/fill_candidate_datatypes.cc --- a/stage3/fill_candidate_datatypes.cc Sat Jul 14 11:09:26 2012 +0200 +++ b/stage3/fill_candidate_datatypes.cc Wed Jul 18 16:56:36 2012 +0100 @@ -55,6 +55,7 @@ * BOOL, BYTE, WORD, DWORD, LWORD, USINT, SINT, UINT, INT, UDINT, DINT, ULINT, LINT (as well as the SAFE versions of these data tyes too!) */ +#include <../main.hh> /* required for UINT64_MAX, INT64_MAX, INT64_MIN, ... */ #include "fill_candidate_datatypes.hh" #include "datatype_functions.hh" #include @@ -141,24 +142,24 @@ } } if (IS_OVERFLOW( uint64, symbol)) { - remove_from_candidate_datatype_list(&search_constant_type_c::bool_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safebool_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::usint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safeusint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::byte_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safebyte_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::uint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safeuint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::word_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safeword_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::udint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safeudint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::dword_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safedword_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::ulint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safeulint_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::lword_type_name, symbol->candidate_datatypes); - remove_from_candidate_datatype_list(&search_constant_type_c::safelword_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::bool_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safebool_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::usint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safeusint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::byte_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safebyte_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::uint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safeuint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::word_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safeword_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::udint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safeudint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::dword_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safedword_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::ulint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safeulint_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::lword_type_name, symbol->candidate_datatypes); + remove_from_candidate_datatype_list(&search_constant_type_c::safelword_type_name, symbol->candidate_datatypes); } } /* Remove signed data types */