diff options
| author | 2024-07-25 01:52:22 +0000 | |
|---|---|---|
| committer | 2024-07-25 01:58:31 +0000 | |
| commit | 543eee65cb7fb05ec46c5948e233d05e9eb78889 (patch) | |
| tree | c6e9291b476c9cb7186e43457d337c43d808dc34 | |
| parent | b310760b09dccdccb76683a79b3cb2b88f0bbddc (diff) | |
libtimeinstate: fix potential optimized variable
Per discussion at aosp/3077312/comment/38f6fa69_f6dee70c, the compiler
may optimize out the busy loop. Change to a volatile variable and
initialize to 1 so the *0 calc will not be optimized away.
Test: treehugger
Change-Id: Ic650b5c1b5ca9dcc1ed5817973f9ab831d944c99
Signed-off-by: Neill Kapron <nkapron@google.com>
| -rw-r--r-- | libs/cputimeinstate/testtimeinstate.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/cputimeinstate/testtimeinstate.cpp b/libs/cputimeinstate/testtimeinstate.cpp index 81f6a585ab..44cdc02c0e 100644 --- a/libs/cputimeinstate/testtimeinstate.cpp +++ b/libs/cputimeinstate/testtimeinstate.cpp @@ -41,7 +41,7 @@ static constexpr uint64_t NSEC_PER_SEC = 1000000000; static constexpr uint64_t NSEC_PER_YEAR = NSEC_PER_SEC * 60 * 60 * 24 * 365; // Declare busy loop variable globally to prevent removal during optimization -static long sum __attribute__((used)) = 0; +static volatile long sum __attribute__((used)) = 1; using std::vector; @@ -579,8 +579,8 @@ uint64_t timeNanos() { // Keeps CPU busy with some number crunching void useCpu() { - sum = 0; - for (int i = 0; i < 100000; i++) { + sum = 1; + for (int i = 1; i < 100000; i++) { sum *= i; } } |