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/testsuite | |
parent | f3270633e01dda3ee98c4305410fd4830d8a829c (diff) | |
download | gcc-4a49c70b858351daecd43cac4bbe5d7f6e4e70e4.tar.gz |
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/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_abi.cc | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc index 93205b8cc67..e78a1132462 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. |