mirror of
https://github.com/google/benchmark.git
synced 2024-11-29 00:34:42 +00:00
93bfabc8b8
* Fix #342: DoNotOptimize causes compile errors on older GCC versions. DoNotOptimize uses inline assembly contraints to tell the compiler what the type of the input variable. The 'g' operand allows the input to be any register, memory, or immediate integer operand. However this constraint seems to be too weak on older GCC versions, and certain inputs will cause compile errors. This patch changes the constraint to 'X', which is documented as "any operand whatsoever is allowed". This appears to fix the issues with older GCC versions. However Clang doesn't seem to like "X", and will attempt to put the input into a register even when it can't/shouldn't; causing a compile error. However using "g" seems to work like "X" with GCC, so for this reason Clang still uses "g". * Try alternative formulation to placate GCC |
||
---|---|---|
.. | ||
basic_test.cc | ||
benchmark_test.cc | ||
CMakeLists.txt | ||
complexity_test.cc | ||
cxx03_test.cc | ||
diagnostics_test.cc | ||
donotoptimize_test.cc | ||
filter_test.cc | ||
fixture_test.cc | ||
map_test.cc | ||
multiple_ranges_test.cc | ||
options_test.cc | ||
output_test.h | ||
output_test_helper.cc | ||
register_benchmark_test.cc | ||
reporter_output_test.cc | ||
skip_with_error_test.cc | ||
user_counters_tabular_test.cc | ||
user_counters_test.cc |