mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-05 11:27:40 +00:00
Disable compile-time checks for dynamic width/precision test for LCC and compiler without std::is_constant_evaluated()
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
This commit is contained in:
parent
797d82b21a
commit
a07411c2b9
@ -755,8 +755,11 @@ class compile_parse_context
|
|||||||
using base::check_arg_id;
|
using base::check_arg_id;
|
||||||
|
|
||||||
FMT_CONSTEXPR void check_dynamic_spec(int arg_id) {
|
FMT_CONSTEXPR void check_dynamic_spec(int arg_id) {
|
||||||
|
detail::ignore_unused(arg_id);
|
||||||
|
#if !defined(__LCC__)
|
||||||
if (arg_id < num_args_ && types_ && !is_integral_type(types_[arg_id]))
|
if (arg_id < num_args_ && types_ && !is_integral_type(types_[arg_id]))
|
||||||
this->on_error("width/precision is not integer");
|
this->on_error("width/precision is not integer");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
FMT_END_DETAIL_NAMESPACE
|
FMT_END_DETAIL_NAMESPACE
|
||||||
|
@ -2178,7 +2178,9 @@ TEST(format_test, format_string_errors) {
|
|||||||
EXPECT_ERROR("{: }", "format specifier requires signed argument", unsigned);
|
EXPECT_ERROR("{: }", "format specifier requires signed argument", unsigned);
|
||||||
EXPECT_ERROR("{:{}}", "argument not found", int);
|
EXPECT_ERROR("{:{}}", "argument not found", int);
|
||||||
EXPECT_ERROR("{:.{}}", "argument not found", double);
|
EXPECT_ERROR("{:.{}}", "argument not found", double);
|
||||||
|
# if defined(__cpp_lib_is_constant_evaluated) && !defined(__LCC__)
|
||||||
EXPECT_ERROR("{:{}}", "width/precision is not integer", int, double);
|
EXPECT_ERROR("{:{}}", "width/precision is not integer", int, double);
|
||||||
|
# endif
|
||||||
EXPECT_ERROR("{:.2}", "precision not allowed for this argument type", int);
|
EXPECT_ERROR("{:.2}", "precision not allowed for this argument type", int);
|
||||||
EXPECT_ERROR("{:s}", "invalid type specifier", int);
|
EXPECT_ERROR("{:s}", "invalid type specifier", int);
|
||||||
EXPECT_ERROR("{:s}", "invalid type specifier", char);
|
EXPECT_ERROR("{:s}", "invalid type specifier", char);
|
||||||
|
Loading…
Reference in New Issue
Block a user