Package: sparse / 0.6.4-3

Metadata

Package Version Patches format
sparse 0.6.4-3 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
fix unreplaced warnings caused by using typeof on in.patch | (download)

evaluate.c | 2 1 1 - 0 !
validation/inline-early/unreplaced-abstract.c | 28 28 0 - 0 !
validation/optim/devirtualize0.c | 17 17 0 - 0 !
3 files changed, 46 insertions( ), 1 deletion(-)

 [patch] fix "unreplaced" warnings caused by using typeof() on inline
 functions

Currently, sparse do all its inlining at the tree level, during
constant expansion. To not mix-up the evaluation of the original
function body in case the address of an inline function is taken or
when the function can't otherwise be inlined, the statements and
symbols lists of inline functions are kept in separated fields.
Then, if the original body must be evaluated it must first be
'uninlined' to have a copy in the usual fields.

This make sense when dealing with the definition of the function.
But, when using typeof() on functions, the resulting type doesn't
refer to this definition, it's just a copy of the type and only
of the type. There shouldn't be any reasons to uninline anything.
However, the distinction between 'full function' and 'type only'
is not made during evaluation and the uninlining attempt produce
a lot of "warning: unreplaced symbol '...'" because of the lack
of a corresponding definition.

Fix this by not doing the uninlining if the symbol lack a definition.

Note: It would maybe be more appropriate for EXPR_TYPE to use
      a stripped-own version of evaluate_symbol() doing only the
      examination of the return and argument types, bypassing the
      attempt to uninline the body and evaluate the initializer and
      the statements since there is none of those for an EXPR_TYPE.

Link: https://lore.kernel.org/all/[email protected]
Reported-by: kernel test robot <[email protected]>
Signed-off-by: Luc Van Oostenryck <[email protected]>
ld as needed.patch | (download)

Makefile | 1 1 0 - 0 !
1 file changed, 1 insertion( )

 use ld --as-needed to drop superfluous dependencies

This fixes:

	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libgio-2.0.so.0 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libgdk_pixbuf-2.0.so.0 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libpango-1.0.so.0 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libcairo.so.2 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libfontconfig.so.1 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libatk-1.0.so.0 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libpangocairo-1.0.so.0 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libfreetype.so.6 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libgdk-x11-2.0.so.0 (it uses none of the library's symbols)
	dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/sparse/usr/bin/test-inspect was not linked against libpangoft2-1.0.so.0 (it uses none of the library's symbols)


use gcc 12.patch | (download)

Makefile | 2 1 1 - 0 !
cgcc | 2 1 1 - 0 !
2 files changed, 2 insertions( ), 2 deletions(-)

 [patch] cgcc: use gcc-11 explicitly

By default sparse uses include files from the compiler it is compiled with. To
prevent that these include files are removed the sparse package has an explicit
dependency on gcc-11 and is patched to make use of (only) this version.