ошибка неиспользуемой переменной, gem5

Я использую scons для компиляции gem5.

scons build/ARM/gem5.fast -j4

Я определил переменную, инициализировал ее и использовал в операторе dprintf.

Addr tot_blk_count = page_number / page_per_block; 
DPRINTF(out, "Total block count %lu " , tot_blk_count); 

Однако scons будет сообщать об ошибках (а не предупреждениях) для неиспользуемых переменных.

 error: unused variable 'tot_blk_count' [-Werror=unused-variable]

Любые предложения о том, как избавиться от этой ошибки или изменить ее на предупреждение?


person NaSh    schedule 27.10.2016    source источник
comment
Очевидно, gem5.fast игнорирует оператор DPRINTF, вызывая ошибку неиспользуемой переменной. Я изменил это на scons build / ARM / gem5.opt, и компиляция прошла успешно.   -  person NaSh    schedule 27.10.2016
comment
Вы должны опубликовать это в качестве ответа?   -  person bdbaddog    schedule 31.10.2016


Ответы (1)


При компиляции для gem5.fast DPRINTF будет проигнорирован, а tot_blk_count будет неиспользуемой переменной.

Решения:

Одним из решений является компиляция для gem5.opt, поскольку он не будет игнорировать DPRINTF и не будет сообщать об ошибке.

scons build/ARM/gem5.opt 

Второе решение - использовать оператор внутри DPRINTF, чтобы избежать неиспользуемой переменной в случае, если вы компилируете для gem5.fast:

DPRINTF(out, "Total block count %lu " , page_number / page_per_block);

Если вы хотите сохранить объявление неиспользуемой переменной, просто отметьте ее с помощью M5_VAR_USED, который проинформирует компилятор о том, что переменная, возможно, не используется, и никаких предупреждений не будет:

Addr M5_VAR_USED tot_blk_count = page_number / page_per_block; 
DPRINTF(out, "Total block count %lu " , tot_blk_count); 
person NaSh    schedule 31.10.2016