Open sim642 opened 2 years ago
At least the part we get from make apps/openssl
is single-threaded, meaning it is unsuitable if we want to go for the race warnings as our example.
Live lines: 76
[Warning][Deadcode] Function 'wget_hpkp_db_init' has dead code:
on line 480 (hpkp_db.c:480-480)
on line 477 (hpkp_db.c:477-477)
on line 472 (hpkp_db.c:472-472)
Found dead code on 18736 lines (including 18733 in uncalled functions)!
Total lines (logical LoC): 18812
Attempt 1
Error:
The problem is
_Float32
here:In
engines/e_afalg.c
:_GNU_SOURCE
enables (through a number of intermediates) the following in the unpreprocessedstdlib.h
:I think OpenSSL itself doesn't even use
_Float32
or that function, but it just gets pulled in with_GNU_SOURCE
among tons of other GNU-specific things.Attempt 2
In
floatn-common.h
there is the following typedef:So in an extremely crude hack to bypass that and cause the typedef to be used in the standard headers, I tried the following to pretend to be GCC 6.0 for the purposes of preprocessing:
Error:
The problem is the
_Noreturn
here:_Noreturn
is a C11 feature that CIL doesn't support (https://github.com/goblint/cil/issues/13).Attempt 3
In an even more desperate attempt, I tried to just preprocess that keyword away (it's just extra information that technically shouldn't matter):
Error:
The problematic code is
__float128
:CIL has has some kind of support for it (https://github.com/goblint/cil/issues/8), but it defines both
__float128
and_Float128
as builtin type names, so maybe that's screwing with the parsing of this. I think that aspect of CIL has been updated for GCC >=7.0, so my version hack above is probably causing this one to happen. The appropriate solution would be to handle the other GNU float types directly as well.TODO
_Noreturn
support to CIL (https://github.com/goblint/cil/pull/58)._Atomic
support to CIL (https://github.com/goblint/cil/pull/61).