mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
string-util: explicitly cast character to unsigned
This also adds comment why we cast to unsigned. Follow-up for 7971f9030ae4bebe0d4a6845ed31584f8ab18103. Addresses the comment https://github.com/systemd/systemd/pull/19544#discussion_r628472794.
This commit is contained in:
parent
11c38d3e51
commit
3d56acef7f
@ -130,7 +130,12 @@ static inline bool _pure_ in_charset(const char *s, const char* charset) {
|
||||
}
|
||||
|
||||
static inline bool char_is_cc(char p) {
|
||||
return (uint8_t) p < ' ' || p == 127;
|
||||
/* char is unsigned on some architectures, e.g. aarch64. So, compiler may warn the condition
|
||||
* p >= 0 is always true. See #19543. Hence, let's cast to unsigned before the comparison. Note
|
||||
* that the cast in the right hand side is redundant, as according to the C standard, compilers
|
||||
* automatically cast a signed value to unsigned when comparing with an unsigned variable. Just
|
||||
* for safety and readability. */
|
||||
return (uint8_t) p < (uint8_t) ' ' || p == 127;
|
||||
}
|
||||
bool string_has_cc(const char *p, const char *ok) _pure_;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user