/memcheck/tests/deep-backtrace
/memcheck/tests/deep_templates
/memcheck/tests/demangle
+/memcheck/tests/demangle-rust
/memcheck/tests/describe-block
/memcheck/tests/descr_belowsp
/memcheck/tests/dir
// A v0 symbol that demangles to: <rustc_middle::ty::PredicateKind as rustc_middle::ty::fold::TypeFoldable>::fold_with::<rustc_infer::infer::resolve::OpportunisticVarResolver>
int _RINvYNtNtCs4uGc65yWeeX_12rustc_middle2ty13PredicateKindNtNtB5_4fold12TypeFoldable9fold_withNtNtNtCsgI90OQiJWEs_11rustc_infer5infer7resolve24OpportunisticVarResolverECsdozMG8X9FIu_21rustc_trait_selection(int *p)
{
- return *p ? 1 : 2;
+ free(p);
+ free(p);
+ return 1;
}
// A v0 symbol that demangles to: rustc_expand::mbe::macro_parser::parse_tt
-Conditional jump or move depends on uninitialised value(s)
- at 0x........: <rustc_middle::ty::PredicateKind as rustc_middle::ty::fold::TypeFoldable>::fold_with::<rustc_infer::infer::resolve::OpportunisticVarResolver> (demangle-rust.c:12)
- by 0x........: rustc_expand::mbe::macro_parser::parse_tt (demangle-rust.c:18)
- by 0x........: core::str::lossy::Utf8Lossy::from_bytes (demangle-rust.c:24)
- by 0x........: main (demangle-rust.c:29)
+Invalid free() / delete / delete[] / realloc()
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: <rustc_middle::ty::PredicateKind as rustc_middle::ty::fold::TypeFoldable>::fold_with::<rustc_infer::infer::resolve::OpportunisticVarResolver> (demangle-rust.c:13)
+ by 0x........: rustc_expand::mbe::macro_parser::parse_tt (demangle-rust.c:20)
+ by 0x........: core::str::lossy::Utf8Lossy::from_bytes (demangle-rust.c:26)
+ by 0x........: main (demangle-rust.c:31)
+ Address 0x........ is 0 bytes inside a block of size 4 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: <rustc_middle::ty::PredicateKind as rustc_middle::ty::fold::TypeFoldable>::fold_with::<rustc_infer::infer::resolve::OpportunisticVarResolver> (demangle-rust.c:12)
+ by 0x........: rustc_expand::mbe::macro_parser::parse_tt (demangle-rust.c:20)
+ by 0x........: core::str::lossy::Utf8Lossy::from_bytes (demangle-rust.c:26)
+ by 0x........: main (demangle-rust.c:31)
+ Block was alloc'd at
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (demangle-rust.c:31)
// Simple smoke test to see that the demangler is actually working
+#include <cstdlib>
namespace abc {
template <typename T1, typename T2>
public:
T1 xyzzy(T1 *p, T2 *)
{
- return *p ? 10 : 20;
+ free(p);
+ return 10;
}
};
};
-Conditional jump or move depends on uninitialised value(s)
- at 0x........: abc::def<int, magic<int> >::xyzzy(int*, magic<int>*) (demangle.cpp:9)
- by 0x........: magic<int>::xyzzy(int*) (demangle.cpp:19)
- by 0x........: main (demangle.cpp:27)
+Mismatched free() / delete / delete []
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: abc::def<int, magic<int> >::xyzzy(int*, magic<int>*) (demangle.cpp:10)
+ by 0x........: magic<int>::xyzzy(int*) (demangle.cpp:21)
+ by 0x........: main (demangle.cpp:29)
+ Address 0x........ is 0 bytes inside a block of size 4 alloc'd
+ at 0x........: ...operator new... (vg_replace_malloc.c:...)
+ by 0x........: main (demangle.cpp:29)