High · published September 3, 2019
The POWER9 backend in GNU Compiler Collection (GCC) before version 10 could optimize multiple calls of the __builtin_darn intrinsic into a single call, thus reducing the entropy of the random number generator. This occurred because a volatile operation was not specified. For example, within a single execution of a program, the output of every __builtin_darn() call may be the same.
| Product | Versions | Fixed in |
|---|---|---|
| gnu/gcc | < 7.5.0 | 7.5.0 |
| gnu/gcc | ≥ 8.0, < 8.4.0 | 8.4.0 |
| gnu/gcc | ≥ 9.0, < 9.3.0 | 9.3.0 |
| gnu/gcc | ≥ 10.0, < 10.1.0 | 10.1.0 |
| opensuse/leap | all versions | — |
| opensuse/leap | all versions | — |