diff --git a/include/etl/limits.h b/include/etl/limits.h index 9fa86fff..47b10a22 100644 --- a/include/etl/limits.h +++ b/include/etl/limits.h @@ -332,6 +332,11 @@ namespace etl static ETL_CONSTANT bool is_signed = etl::is_signed::value; static ETL_CONSTANT bool is_modulo = etl::is_unsigned::value; +#if defined(ETL_COMPILER_CLANG) && defined(CROSS_COMPILING_TO_AVR) +#undef WCHAR_MIN +#define WCHAR_MIN (-WCHAR_MAX - 1) +#endif + static ETL_CONSTEXPR wchar_t min() { return WCHAR_MIN; } static ETL_CONSTEXPR wchar_t max() { return WCHAR_MAX; } static ETL_CONSTEXPR wchar_t lowest() { return WCHAR_MIN; } diff --git a/include/etl/profiles/determine_compiler.h b/include/etl/profiles/determine_compiler.h index b1078588..60f33c61 100644 --- a/include/etl/profiles/determine_compiler.h +++ b/include/etl/profiles/determine_compiler.h @@ -75,6 +75,9 @@ SOFTWARE. #if defined(__clang__) || defined(__llvm__) #define ETL_COMPILER_CLANG #define ETL_COMPILER_TYPE_DETECTED + #if __AVR__ == 1 + #define CROSS_COMPILING_TO_AVR + #endif #endif #endif