[Bug debug/49130] discrepancies between DW_AT_name and demangler
dodji at seketeli dot org
gcc-bugzilla@gcc.gnu.org
Fri May 27 17:39:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49130
--- Comment #5 from dodji at seketeli dot org <dodji at seketeli dot org> 2011-05-27 17:27:43 UTC ---
In the example below, I could reproduce a case of difference between the
mangled name and the content of DW_AT_name.
Basically the content of the DW_AT_name property of the instanciation of
S is S<2048u>, and the mangled name of the member function f is
_ZN1N1SILm2048EE1fEm --> N::S<2048ul>::f(unsigned long). Notice how the
former S<2048u> and the latter S<2048ul> are different.
typedef long unsigned int size_t;
static const size_t KB = 1024;
static const size_t atomSize = sizeof(double);
static const size_t blockSize = 16 * KB;
namespace N {
template<size_t size>
struct S
{
void f(size_t);
};
template<size_t size>
inline void
S<size>::f(size_t)
{
size_t i = size;
}
}
int
main()
{
N::S<blockSize / atomSize> s1;
s1.f(10);
}
More information about the Gcc-bugs
mailing list