view gcc/testsuite/g++.dg/ext/visibility/fvisibility-inlines-hidden-4.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* PR c++/30066: Test that -fvisibility-inlines-hidden affects functions. */
/* { dg-do compile } */
/* { dg-require-visibility "" } */
/* { dg-options "-fvisibility-inlines-hidden" } */
/* { dg-final { scan-hidden "_Z3barv" } } */
/* { dg-final { scan-not-hidden "_ZZ3barvE1n" } } */
/* { dg-final { scan-not-hidden "_Z3fooIiEvv" } } */
/* { dg-final { scan-hidden "_Z3fooIvEvv" } } */
/* { dg-final { scan-hidden "_ZZN1A5innerEvE1n" } } */

inline int * bar()
{
  static int n;
  return &n;
}

template <class T>
inline void foo() { }

template void foo<int>();

namespace A __attribute__ ((visibility ("hidden")))
{
  inline int * inner()
  {
    static int n;
    return &n;
  }
}

int main(void)
{
  bar();
  foo<void>();
  A::inner();
  return 0;
}