1193323Sed// { dg-do run }
2193323Sed
3193323Sed// Copyright (C) 2002 Free Software Foundation, Inc.
4193323Sed// Contributed by Nathan Sidwell 14 Sep 2002 <nathan@codesourcery.com>
5193323Sed
6193323Sed// PR 7768 template dtor pretty function wrong
7193323Sed
8193323Sed#include <string.h>
9193323Sed
10193323Sedstatic size_t current = 0;
11193323Sedstatic bool error = false;
12193323Sed
13193323Sedstatic char const *names[] =
14193323Sed{
15193323Sed  "X<T>::X() [with T = void]",
16193323Sed  "X<T>::~X() [with T = void]",
17193323Sed  0
18193323Sed};
19193323Sed
20193323Sedvoid Verify (char const *ptr)
21193323Sed{
22198090Srdivacky  error = strcmp (ptr, names[current++]);
23193323Sed}
24193323Sed
25193323Sedtemplate <typename T>
26199989Srdivackystruct X
27193323Sed{
28193323Sed  X() { Verify (__PRETTY_FUNCTION__); }
29193323Sed  ~X() { Verify (__PRETTY_FUNCTION__); }
30193323Sed};
31193323Sed
32193323Sedint main()
33193323Sed{
34193323Sed  {
35193323Sed    X<void> x;
36193323Sed
37193323Sed    if (error)
38193323Sed      return current;
39193323Sed  }
40193323Sed  if (error)
41193323Sed    return current;
42193323Sed  return 0;
43198090Srdivacky}
44193323Sed