// APPLE LOCAL file mainline
// Test that extern template does not get emitted.
// Author: Matt Austern <austern@apple.com>
// { dg-do compile }
// { dg-options "" }
// { dg-final { scan-assembler-not ".globl __ZN3FooIiE5identEi" } }

template <typename X>
  struct Foo { X ident(X x); };

template <typename X> 
  X Foo<X>::ident(X x) { return x; }

extern template struct Foo<int>;

int abcde(Foo<int>& foo, int n) { return foo.ident(n); }
