Skip to content

More fixes for compile-time warnings in equix and hashx

Micah Elizabeth Scott requested to merge beth/tor:ticket40800_mr into main

This addresses issue #40800 (closed) and a couple other problems I noticed while trying to reproduce that one.

The original issue is just a missing cast to void* on the args of __builtin___clear_cache(), and clang is picky about the implicit cast between what it considers to be char of different signedness. Original report is from MacOS but it's also reproducible on other clang targets.

The cmake-based original build system for equix and hashx was a handy way to run tests, but it suffered from some warnings due to incorrect application of include_directories().

And lastly, there were some return codes from hashx_exec() that get ignored on equix when asserts are disabled. It bugged me too much to just silence this with a (void) cast, since even though this is in the realm of low-likelyhood programming errors and not true runtime errors, I don't want to make it easy for the hashx_exec() wrappers to return values that are dangerously wrong if an error is ignored. I made sure that even if asserts are disabled, we return values that will cause the solver and verifier to both fail to validate a potential solution.

Merge request reports