This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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)


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]