Paul Floyd c09706352a Make memcheck tests demangle and demangle-rust clang-friendly.
Clang uses CMOV for ternary operators which does not immediately
trigger an error. Using double free and new/free mismatch still
poses no problem with clang but still uses the demangling.

Also update .gitignore
2021-11-12 23:44:54 +01:00

32 lines
459 B
C++

// Simple smoke test to see that the demangler is actually working
#include <cstdlib>
namespace abc {
template <typename T1, typename T2>
class def {
public:
T1 xyzzy(T1 *p, T2 *)
{
free(p);
return 10;
}
};
};
template <typename T>
class magic {
public:
T xyzzy(T *p)
{
return (new abc::def<int,typeof(*this)>)->xyzzy(p, 0);
}
};
int main()
{
magic<int> *c = new magic<int>;
c->xyzzy(new int);
return 0;
}