This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/80183] New: [7 Regression] Conditional jump or move depends on uninitialised value: std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) (tree.cc:97)
- From: "trippels at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 25 Mar 2017 12:12:28 +0000
- Subject: [Bug libstdc++/80183] New: [7 Regression] Conditional jump or move depends on uninitialised value: std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) (tree.cc:97)
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80183
Bug ID: 80183
Summary: [7 Regression] Conditional jump or move depends on
uninitialised value:
std::local_Rb_tree_decrement(std::_Rb_tree_node_base*)
(tree.cc:97)
Product: gcc
Version: 7.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
Target Milestone: ---
Running clang-format under valgrind shows:
==69398== Conditional jump or move depends on uninitialised value(s)
==69398== at 0x42D3B08:
std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) (tree.cc:97)
==69398== by 0x101B12FF:
std::_Rb_tree_const_iterator<clang::tooling::Replacement>::operator--() (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B17FF:
std::reverse_iterator<std::_Rb_tree_const_iterator<clang::tooling::Replacement>
>::operator->() const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B0597:
clang::tooling::applyAllReplacements[abi:cxx11](llvm::StringRef,
clang::tooling::Replacements const&) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101099FB: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef,
bool*)::{lambda(clang::format::TokenAnalyzer&)#1}::operator()(clang::format::TokenAnalyzer&)
const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x10109E67: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef, bool*) (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000C603: clang::format::format(llvm::StringRef) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000D1D7: main (in
/home/trippels/llvm_build/bin/clang-format)
==69398==
==69398== Conditional jump or move depends on uninitialised value(s)
==69398== at 0x42D3B08:
std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) (tree.cc:97)
==69398== by 0x101B12FF:
std::_Rb_tree_const_iterator<clang::tooling::Replacement>::operator--() (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B17FF:
std::reverse_iterator<std::_Rb_tree_const_iterator<clang::tooling::Replacement>
>::operator->() const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B05BF:
clang::tooling::applyAllReplacements[abi:cxx11](llvm::StringRef,
clang::tooling::Replacements const&) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101099FB: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef,
bool*)::{lambda(clang::format::TokenAnalyzer&)#1}::operator()(clang::format::TokenAnalyzer&)
const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x10109E67: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef, bool*) (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000C603: clang::format::format(llvm::StringRef) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000D1D7: main (in
/home/trippels/llvm_build/bin/clang-format)
==69398==
==69398== Conditional jump or move depends on uninitialised value(s)
==69398== at 0x42D3B08:
std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) (tree.cc:97)
==69398== by 0x101B12FF:
std::_Rb_tree_const_iterator<clang::tooling::Replacement>::operator--() (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B17FF:
std::reverse_iterator<std::_Rb_tree_const_iterator<clang::tooling::Replacement>
>::operator->() const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B05E7:
clang::tooling::applyAllReplacements[abi:cxx11](llvm::StringRef,
clang::tooling::Replacements const&) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101099FB: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef,
bool*)::{lambda(clang::format::TokenAnalyzer&)#1}::operator()(clang::format::TokenAnalyzer&)
const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x10109E67: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef, bool*) (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000C603: clang::format::format(llvm::StringRef) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000D1D7: main (in
/home/trippels/llvm_build/bin/clang-format)
==69398==
==69398== Conditional jump or move depends on uninitialised value(s)
==69398== at 0x42D3B08:
std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) (tree.cc:97)
==69398== by 0x101B12FF:
std::_Rb_tree_const_iterator<clang::tooling::Replacement>::operator--() (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101B06DF:
clang::tooling::applyAllReplacements[abi:cxx11](llvm::StringRef,
clang::tooling::Replacements const&) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x101099FB: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef,
bool*)::{lambda(clang::format::TokenAnalyzer&)#1}::operator()(clang::format::TokenAnalyzer&)
const (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x10109E67: clang::format::reformat(clang::format::FormatStyle
const&, llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>,
llvm::StringRef, bool*) (in /home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000C603: clang::format::format(llvm::StringRef) (in
/home/trippels/llvm_build/bin/clang-format)
==69398== by 0x1000D1D7: main (in
/home/trippels/llvm_build/bin/clang-format)
This happens even when llvm/clang is build with -O0 and also when build with
clang.
gcc-6 libstdc++.so.6 works fine. And clang with -stdlib=libc++ also is fine.
So it looks like a libstdc++ regression. Sorry, but I have no testcase yet.