aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2008-03-21 11:31:11 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2008-03-21 11:31:11 +0000
commit4a49c70b858351daecd43cac4bbe5d7f6e4e70e4 (patch)
tree5542d981a812631ee45abb3e09f94d3799dfa9df
parentf3270633e01dda3ee98c4305410fd4830d8a829c (diff)
downloadgcc-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
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_abi.cc23
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.