diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2008-03-21 11:31:11 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2008-03-21 11:31:11 +0000 |
commit | 4a49c70b858351daecd43cac4bbe5d7f6e4e70e4 (patch) | |
tree | 5542d981a812631ee45abb3e09f94d3799dfa9df /libstdc++-v3 | |
parent | f3270633e01dda3ee98c4305410fd4830d8a829c (diff) | |
download | gcc-4a49c70b858351daecd43cac4bbe5d7f6e4e70e4.zip gcc-4a49c70b858351daecd43cac4bbe5d7f6e4e70e4.tar.gz gcc-4a49c70b858351daecd43cac4bbe5d7f6e4e70e4.tar.bz2 |
testsuite_abi.cc: Add support for not counting GLIBCXX_LDBL_* compat symbols missing if...
2008-03-20 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/testsuite_abi.cc: Add support for not counting
GLIBCXX_LDBL_* compat symbols missing if no long double compat
symbols under test.
From-SVN: r133417
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_abi.cc | 23 |
2 files changed, 27 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 578a36c..a48967d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2008-03-20 Benjamin Kosnik <bkoz@redhat.com> + + * testsuite/util/testsuite_abi.cc: Add support for not counting + GLIBCXX_LDBL_* compat symbols missing if no long double compat + symbols under test. + 2008-03-20 Paolo Carlini <pcarlini@suse.de> PR libstdc++/35637 diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc index 93205b8..e78a113 100644 --- a/libstdc++-v3/testsuite/util/testsuite_abi.cc +++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc @@ -354,6 +354,16 @@ compare_symbols(const char* baseline_file, const char* test_file, exit(2); } + // Check to see if any long double compatibility symbols are produced. + bool ld_version_found(false); + symbol_objects::iterator li(test_objects.begin()); + while (!ld_version_found && li != test_objects.end()) + { + if (li->second.version_name.find("GLIBCXX_LDBL_") != std::string::npos) + ld_version_found = true; + ++li; + } + // Sort out names. // Assuming baseline_names, test_names are both unique w/ no duplicates. // @@ -389,8 +399,17 @@ compare_symbols(const char* baseline_file, const char* test_file, for (size_t j = 0; j < missing_size; ++j) { symbol& base = baseline_objects[missing_names[j]]; - base.status = symbol::subtracted; - incompatible.push_back(symbol_pair(base, base)); + + // Iff no test long double symbols at all and the symbol missing + // is a baseline long double symbol, skip. + if (!ld_version_found + && base.version_name.find("GLIBCXX_LDBL_") != std::string::npos) + continue; + else + { + base.status = symbol::subtracted; + incompatible.push_back(symbol_pair(base, base)); + } } // Check shared names for compatibility. |