view gcc/testsuite/g++.dg/debug/dwarf2/pr88006.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// { dg-additional-options "-dA -std=gnu++17 -gdwarf-4 -O1 -fdebug-types-section" }
// reject .pseudo label, but "label" is ok.
// { dg-final { scan-assembler-not "\[^\"\]_ZN3Foo4mfunEv" } }
// undefined ref to _ZN3Foo4mfunEv

struct Foo {
  void mfun () {}
};

struct A { static constexpr bool Value = false; };

template <bool> struct B { typedef int Type; };

class Arg
{
  template <typename Unused> struct Local : A {};

public:
  template <typename Init, typename = typename B<Local<Init>::Value>::Type>
  Arg (Init) {}
};

class Lambda {
  static constexpr int Unused = 0;
    
public:
  Lambda (Arg);
};

// Generated ref to Foo::mfun in the type die of an instantiation of this
template <void (Foo::*unused)()> struct Callable {};

class I {
  I() : lamb ([this] {}) {}

  Lambda lamb;

  Callable<&Foo::mfun> bm;
};