Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 543eee65 authored by Neill Kapron's avatar Neill Kapron
Browse files

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: default avatarNeill Kapron <nkapron@google.com>
parent b310760b
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
    }
}