boostorg / boostorg/process

Dead loop on aarch64 platform

Open
#536 3 comments 2 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
145
Forks
151
PR merge metrics
No merged PRs in 30d

Description

There are some tautological-constant-out-of-range-compare warnings on aarch64 platform, because `char` is an unsigned type on it. `src/ext/cmd.cpp` is fine because result is still correct in this situation, but `src/ext/env.cpp` doesn't work well.

```
external/boost/libs/process/src/ext/cmd.cpp:222:28: error: result of comparison of constant -1 with expression of type '__gnu_cxx::__alloc_traits, char>::value_type' (aka 'char') is always true [-Werror,-Wtautological-constant-out-of-range-compare]
while (procargs.back() != EOF)
~~~~~~~~~~~~~~~ ^ ~~~
external/boost/libs/process/src/ext/cmd.cpp:240:25: error: result of comparison of constant -1 with expression of type '__gnu_cxx::__alloc_traits, char>::value_type' (aka 'char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
if (procargs.back() == EOF)
~~~~~~~~~~~~~~~ ^ ~~~

external/boost/libs/process/src/ext/env.cpp:130:16: error: result of comparison of constant -1 with expression of type 'char' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
while (*nh != EOF)
~~~ ^ ~~~
external/boost/libs/process/src/ext/env.cpp:321:50: error: result of comparison of constant -1 with expression of type 'char' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
while (!procargs || procargs.get()[size - 1] != EOF)
~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.