Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package include-what-you-use for
openSUSE:Factory checked in at 2023-11-09 21:34:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/include-what-you-use (Old)
and /work/SRC/openSUSE:Factory/.include-what-you-use.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "include-what-you-use"
Thu Nov 9 21:34:46 2023 rev:18 rq:1124310 version:0.21
Changes:
--------
---
/work/SRC/openSUSE:Factory/include-what-you-use/include-what-you-use.changes
2023-04-05 21:35:17.286442797 +0200
+++
/work/SRC/openSUSE:Factory/.include-what-you-use.new.17445/include-what-you-use.changes
2023-11-09 21:35:04.660176363 +0100
@@ -1,0 +2,17 @@
+Wed Nov 8 22:44:57 UTC 2023 - Aaron Puchert <[email protected]>
+
+- Update to version 0.21, update LLVM/Clang to version 17.
+ * Improve analysis of type aliases (typedef and using).
+ * Improve analysis of namespace aliases (namespace xyz = foobar).
+ * Improve support for elaborated forward declarations
+ (typedef struct Foo Bar).
+ * Improve handling of "autocast" and function return types,
+ particularly with complex template types.
+ * Add new IWYU pragma: always_keep, which lets a header announce
+ that it should always be kept wherever included.
+ * Automatically use builtin libc++ mappings if libc++ is the
+ active standard library.
+ * Improve mappings for libc++ and posix headers.
+- Rebase iwyu_include_picker.patch.
+
+-------------------------------------------------------------------
Old:
----
include-what-you-use-0.20.src.tar.gz
New:
----
include-what-you-use-0.21.src.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ include-what-you-use.spec ++++++
--- /var/tmp/diff_new_pack.muwHLz/_old 2023-11-09 21:35:05.348201717 +0100
+++ /var/tmp/diff_new_pack.muwHLz/_new 2023-11-09 21:35:05.348201717 +0100
@@ -17,10 +17,10 @@
#
-%define _llvm_version 16
+%define _llvm_version 17
Name: include-what-you-use
-Version: 0.20
+Version: 0.21
Release: 0
Summary: A tool to analyze #includes in C and C++ source files
License: NCSA
++++++ include-what-you-use-0.20.src.tar.gz ->
include-what-you-use-0.21.src.tar.gz ++++++
++++ 4990 lines of diff (skipped)
++++++ iwyu_include_picker.patch ++++++
--- /var/tmp/diff_new_pack.muwHLz/_old 2023-11-09 21:35:05.668213510 +0100
+++ /var/tmp/diff_new_pack.muwHLz/_new 2023-11-09 21:35:05.672213657 +0100
@@ -1,8 +1,8 @@
diff --git a/iwyu_include_picker.cc b/iwyu_include_picker.cc
-index 638bf3f..bc0b0a1 100644
+index 22dbe15..7e6480c 100644
--- a/iwyu_include_picker.cc
+++ b/iwyu_include_picker.cc
-@@ -72,14 +72,14 @@ struct IncludeMapEntry { // A POD so we can make the
input static
+@@ -73,14 +73,14 @@ struct IncludeMapEntry { // A POD so we can make the
input static
namespace {
// Listed below are all IWYU's native symbol and include mappings,
@@ -19,7 +19,7 @@
// I ignored all entries that only appeared once on the list (eg uint32_t).
// I then added in NULL, which according to [diff.null] C.2.2.3, can
// be defined in <clocale>, <cstddef>, <cstdio>, <cstdlib>,
-@@ -372,6 +372,23 @@ const IncludeMapEntry stdlib_cxx_symbol_map[] = {
+@@ -271,6 +271,23 @@ const IncludeMapEntry stdlib_cxx_symbol_map[] = {
{ "std::size_t", kPrivate, "<ctime>", kPublic },
{ "std::size_t", kPrivate, "<cuchar>", kPublic },
{ "std::size_t", kPrivate, "<cwchar>", kPublic },
@@ -43,7 +43,7 @@
};
// Symbol -> include mappings for GNU libstdc++
-@@ -379,51 +396,63 @@ const IncludeMapEntry libstdcpp_symbol_map[] = {};
+@@ -281,51 +298,63 @@ const IncludeMapEntry libstdcpp_symbol_map[] = {
const IncludeMapEntry libc_include_map[] = {
// Private -> public include mappings for GNU libc
@@ -120,7 +120,7 @@
{ "<bits/netdb.h>", kPrivate, "<netdb.h>", kPublic },
{ "<bits/param.h>", kPrivate, "<sys/param.h>", kPublic },
{ "<bits/poll.h>", kPrivate, "<sys/poll.h>", kPrivate },
-@@ -432,66 +461,107 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -334,66 +363,107 @@ const IncludeMapEntry libc_include_map[] = {
{ "<bits/posix2_lim.h>", kPrivate, "<limits.h>", kPublic },
{ "<bits/posix_opt.h>", kPrivate, "<unistd.h>", kPublic },
{ "<bits/printf-ldbl.h>", kPrivate, "<printf.h>", kPublic },
@@ -252,7 +252,7 @@
{ "<bits/utmp.h>", kPrivate, "<utmp.h>", kPublic },
{ "<bits/utmpx.h>", kPrivate, "<utmpx.h>", kPublic },
{ "<bits/utsname.h>", kPrivate, "<sys/utsname.h>", kPublic },
-@@ -500,61 +570,155 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -402,61 +472,155 @@ const IncludeMapEntry libc_include_map[] = {
{ "<bits/wchar-ldbl.h>", kPrivate, "<wchar.h>", kPublic },
{ "<bits/wchar.h>", kPrivate, "<wchar.h>", kPublic },
{ "<bits/wchar2.h>", kPrivate, "<wchar.h>", kPublic },
@@ -424,7 +424,7 @@
// Top-level #includes that just forward to another file:
// $ for i in /usr/include/*; do [ -f $i ] && [ `wc -l < $i` = 1 ] && echo
$i; done
// (poll.h, syscall.h, syslog.h, ustat.h, wait.h).
-@@ -571,8 +735,9 @@ const IncludeMapEntry libc_include_map[] = {
+@@ -473,8 +637,9 @@ const IncludeMapEntry libc_include_map[] = {
// $ for i in /usr/include/bits/*; do for dir in asm linux; do grep -H -e
$dir/`basename $i` $i; done; done
{ "<linux/errno.h>", kPrivate, "<bits/errno.h>", kPrivate },
{ "<asm/ioctls.h>", kPrivate, "<bits/ioctls.h>", kPrivate },
@@ -435,7 +435,7 @@
// Some asm files have 32- and 64-bit variants:
// $ ls /usr/include/asm/*_{32,64}.h
{ "<asm/posix_types_32.h>", kPrivate, "<asm/posix_types.h>", kPublic },
-@@ -602,12 +767,12 @@ const IncludeMapEntry stdlib_c_include_map[] = {
+@@ -504,12 +669,12 @@ const IncludeMapEntry stdlib_c_include_map[] = {
// <cassert> back to <assert.h>. (If you *did* want to replace
// assert.h with cassert, you'd change it to a public->private
// mapping.) Here is how I identified the files to map:
@@ -450,7 +450,7 @@
{ "<assert.h>", kPublic, "<cassert>", kPublic },
{ "<complex.h>", kPublic, "<ccomplex>", kPublic },
{ "<ctype.h>", kPublic, "<cctype>", kPublic },
-@@ -640,7 +805,7 @@ const char* stdlib_cpp_public_headers[] = {
+@@ -542,7 +707,7 @@ const char* stdlib_cpp_public_headers[] = {
// These headers are defined in [headers.cpp].
// https://github.com/cplusplus/draft/blob/c+%2B20/source/lib-intro.tex
//
@@ -459,7 +459,32 @@
"<algorithm>",
"<any>",
"<array>",
-@@ -725,16 +890,19 @@ const char* stdlib_cpp_public_headers[] = {
+@@ -632,19 +797,23 @@ const IncludeMapEntry stdlib_cpp_include_map[] = {
+ // #including each other (eg <iostream> #includes <istream>). We
+ // are pretty forgiving: if a user specifies any public header, we
+ // generally don't require the others.
+- // ( cd
/usr/crosstool/v12/gcc-4.3.1-glibc-2.3.6-grte/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/include/c++/4.3.1
&& egrep '^ *# *include
<(istream|ostream|iostream|fstream|sstream|streambuf|ios|iosfwd)>' *stream* ios
| perl -nle 'm/^([^:]+).*[<"]([^>"]+)[>"]/ and print qq@ { "<$2>", kPublic,
"<$1>", kPublic },@' | sort -u )
++ // ( cd /usr/include/c++/12 && egrep '^ *# *include
<(istream|ostream|iostream|fstream|sstream|streambuf|ios|iosfwd)>' *stream* ios
| perl -nle 'm/^([^:]+).*[<"]([^>"]+)[>"]/ and print qq@ { "<$2>", kPublic,
"<$1>", kPublic },@' | sort -u )
+ { "<ios>", kPublic, "<istream>", kPublic },
+ { "<ios>", kPublic, "<ostream>", kPublic },
+ { "<iosfwd>", kPublic, "<ios>", kPublic },
+ { "<iosfwd>", kPublic, "<streambuf>", kPublic },
+ { "<istream>", kPublic, "<fstream>", kPublic },
+ { "<istream>", kPublic, "<iostream>", kPublic },
++ { "<istream>", kPublic, "<spanstream>", kPublic },
+ { "<istream>", kPublic, "<sstream>", kPublic },
+ { "<ostream>", kPublic, "<fstream>", kPublic },
+ { "<ostream>", kPublic, "<iostream>", kPublic },
+ { "<ostream>", kPublic, "<istream>", kPublic },
++ { "<ostream>", kPublic, "<spanstream>", kPublic },
+ { "<ostream>", kPublic, "<sstream>", kPublic },
++ { "<sstream>", kPublic, "<syncstream>", kPublic },
+ { "<streambuf>", kPublic, "<ios>", kPublic },
++ { "<streambuf>", kPublic, "<spanstream>", kPublic },
+ };
+
+ // Private -> public include mappings for GNU libstdc++
+@@ -652,16 +821,19 @@ const IncludeMapEntry stdlib_cpp_include_map[] = {
// Note: make sure to sync this setting with gcc.stl.headers.imp
//
const IncludeMapEntry libstdcpp_include_map[] = {
@@ -480,7 +505,7 @@
{ "<bits/basic_ios.h>", kPrivate, "<ios>", kPublic },
{ "<bits/basic_ios.tcc>", kPrivate, "<ios>", kPublic },
{ "<bits/basic_string.h>", kPrivate, "<string>", kPublic },
-@@ -743,9 +911,11 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -670,9 +842,11 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/c++0x_warning.h>", kPrivate, "<iosfwd>", kPublic },
{ "<bits/charconv.h>", kPrivate, "<charconv>", kPublic },
{ "<bits/char_traits.h>", kPrivate, "<string>", kPublic },
@@ -493,7 +518,7 @@
{ "<bits/cxxabi_forced.h>", kPrivate, "<cxxabi.h>", kPublic },
{ "<bits/deque.tcc>", kPrivate, "<deque>", kPublic },
{ "<bits/exception_defines.h>", kPrivate, "<exception>", kPublic },
-@@ -763,7 +933,6 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -690,7 +864,6 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/gslice.h>", kPrivate, "<valarray>", kPublic },
{ "<bits/hash_bytes.h>", kPrivate, "<functional>", kPublic },
{ "<bits/indirect_array.h>", kPrivate, "<valarray>", kPublic },
@@ -501,7 +526,7 @@
{ "<bits/invoke.h>", kPrivate, "<functional>", kPublic },
{ "<bits/ios_base.h>", kPrivate, "<ios>", kPublic },
{ "<bits/istream.tcc>", kPrivate, "<istream>", kPublic },
-@@ -778,9 +947,13 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -705,9 +878,13 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/locale_facets.tcc>", kPrivate, "<locale>", kPublic },
{ "<bits/localefwd.h>", kPrivate, "<locale>", kPublic },
{ "<bits/mask_array.h>", kPrivate, "<valarray>", kPublic },
@@ -515,7 +540,7 @@
{ "<bits/ostream_insert.h>", kPrivate, "<ostream>", kPublic },
{ "<bits/ostream.tcc>", kPrivate, "<ostream>", kPublic },
{ "<bits/parse_numbers.h>", kPrivate, "<chrono>", kPublic },
-@@ -791,10 +964,12 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -718,10 +895,12 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/random.h>", kPrivate, "<random>", kPublic },
{ "<bits/random.tcc>", kPrivate, "<random>", kPublic },
{ "<bits/range_access.h>", kPrivate, "<iterator>", kPublic },
@@ -529,7 +554,7 @@
{ "<bits/refwrap.h>", kPrivate, "<functional>", kPublic },
{ "<bits/regex_automaton.h>", kPrivate, "<regex>", kPublic },
{ "<bits/regex_automaton.tcc>", kPrivate, "<regex>", kPublic },
-@@ -808,6 +983,7 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -735,6 +914,7 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/regex_scanner.h>", kPrivate, "<regex>", kPublic },
{ "<bits/regex_scanner.tcc>", kPrivate, "<regex>", kPublic },
{ "<bits/regex.tcc>", kPrivate, "<regex>", kPublic },
@@ -537,7 +562,7 @@
{ "<bits/shared_ptr_atomic.h>", kPrivate, "<memory>", kPublic },
{ "<bits/shared_ptr_base.h>", kPrivate, "<memory>", kPublic },
{ "<bits/shared_ptr.h>", kPrivate, "<memory>", kPublic },
-@@ -816,6 +992,7 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -743,6 +923,7 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/sstream.tcc>", kPrivate, "<sstream>", kPublic },
{ "<bits/std_function.h>", kPrivate, "<functional>", kPublic },
{ "<bits/std_mutex.h>", kPrivate, "<mutex>", kPublic },
@@ -545,7 +570,7 @@
{ "<bits/stl_algobase.h>", kPrivate, "<algorithm>", kPublic },
{ "<bits/stl_algo.h>", kPrivate, "<algorithm>", kPublic },
{ "<bits/stl_bvector.h>", kPrivate, "<vector>", kPublic },
-@@ -845,11 +1022,13 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -772,11 +953,13 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/stream_iterator.h>", kPrivate, "<iterator>", kPublic },
{ "<bits/stringfwd.h>", kPrivate, "<string>", kPublic },
{ "<bits/string_view.tcc>", kPrivate, "<string_view>", kPublic },
@@ -559,7 +584,7 @@
{ "<bits/utility.h>", kPrivate, "<utility>", kPublic },
{ "<bits/valarray_after.h>", kPrivate, "<valarray>", kPublic },
{ "<bits/valarray_array.h>", kPrivate, "<valarray>", kPublic },
-@@ -891,10 +1070,9 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -818,10 +1001,9 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<tr1/unordered_map.h>", kPrivate, "<tr1/unordered_map>", kPublic },
{ "<tr1/unordered_set.h>", kPrivate, "<tr1/unordered_set>", kPublic },
{ "<tr2/dynamic_bitset.tcc>", kPrivate, "<tr2/dynamic_bitset>", kPublic },
@@ -571,7 +596,7 @@
{ "<bits/c++config.h>", kPrivate, "<version>", kPublic },
{ "<bits/c++io.h>", kPrivate, "<ios>", kPublic },
{ "<bits/c++locale.h>", kPrivate, "<locale>", kPublic },
-@@ -908,68 +1086,40 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -835,68 +1017,40 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<bits/os_defines.h>", kPrivate, "<iosfwd>", kPublic },
{ "<bits/time_members.h>", kPrivate, "<locale>", kPublic },
{ "<ext/opt_random.h>", kPrivate, "<ext/random>", kPublic },
@@ -668,7 +693,7 @@
// Hash and hashtable-based containers.
{ "<tr1_impl/functional_hash.h>", kPrivate, "<tr1/functional>", kPublic },
{ "<tr1_impl/functional_hash.h>", kPrivate, "<tr1/unordered_map>", kPublic
},
-@@ -981,22 +1131,35 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -908,22 +1062,35 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<tr1/hashtable.h>", kPrivate, "<tr1/unordered_map>", kPublic },
{ "<tr1/hashtable.h>", kPrivate, "<tr1/unordered_set>", kPublic },
// All .tcc files are gcc internal-include files. We get them from
@@ -709,7 +734,7 @@
// I don't think we want to be having people move to 'backward/'
// yet. (These hold deprecated STL classes that we still use
// actively.) These are the ones that turned up in an analysis of
-@@ -1013,32 +1176,40 @@ const IncludeMapEntry libstdcpp_include_map[] = {
+@@ -940,14 +1107,18 @@ const IncludeMapEntry libstdcpp_include_map[] = {
{ "<hash_fun.h>", kPrivate, "<hash_set>", kPublic },
{ "<hashtable.h>", kPrivate, "<hash_map>", kPublic },
{ "<hashtable.h>", kPrivate, "<hash_set>", kPublic },
@@ -721,29 +746,6 @@
+ { "<ext/alloc_traits.h>", kPrivate, "<map>", kPublic },
+ { "<ext/alloc_traits.h>", kPrivate, "<set>", kPublic },
{ "<ext/sso_string_base.h>", kPrivate, "<string>", kPublic },
- // The iostream .h files are confusing. Lots of private headers,
- // which are handled above, but we also have public headers
- // #including each other (eg <iostream> #includes <istream>). We
- // are pretty forgiving: if a user specifies any public header, we
- // generally don't require the others.
-- // ( cd
/usr/crosstool/v12/gcc-4.3.1-glibc-2.3.6-grte/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/include/c++/4.3.1
&& egrep '^ *# *include
<(istream|ostream|iostream|fstream|sstream|streambuf|ios|iosfwd)>' *stream* ios
| perl -nle 'm/^([^:]+).*[<"]([^>"]+)[>"]/ and print qq@ { "<$2>", kPublic,
"<$1>", kPublic },@' | sort -u )
-+ // ( cd /usr/include/c++/12 && egrep '^ *# *include
<(istream|ostream|iostream|fstream|sstream|streambuf|ios|iosfwd)>' *stream* ios
| perl -nle 'm/^([^:]+).*[<"]([^>"]+)[>"]/ and print qq@ { "<$2>", kPublic,
"<$1>", kPublic },@' | sort -u )
- { "<ios>", kPublic, "<istream>", kPublic },
- { "<ios>", kPublic, "<ostream>", kPublic },
- { "<iosfwd>", kPublic, "<ios>", kPublic },
- { "<iosfwd>", kPublic, "<streambuf>", kPublic },
- { "<istream>", kPublic, "<fstream>", kPublic },
- { "<istream>", kPublic, "<iostream>", kPublic },
-+ { "<istream>", kPublic, "<spanstream>", kPublic },
- { "<istream>", kPublic, "<sstream>", kPublic },
- { "<ostream>", kPublic, "<fstream>", kPublic },
- { "<ostream>", kPublic, "<iostream>", kPublic },
- { "<ostream>", kPublic, "<istream>", kPublic },
-+ { "<ostream>", kPublic, "<spanstream>", kPublic },
- { "<ostream>", kPublic, "<sstream>", kPublic },
-+ { "<sstream>", kPublic, "<syncstream>", kPublic },
- { "<streambuf>", kPublic, "<ios>", kPublic },
-+ { "<streambuf>", kPublic, "<spanstream>", kPublic },
// The location of exception_defines.h varies by GCC version. It should
// never be included directly.
{ "<exception_defines.h>", kPrivate, "<exception>", kPublic },