1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 -pedantic %s
22f639b9f3c6b081f076d2ac6d75115ce44bfa249Douglas Gregor
32f639b9f3c6b081f076d2ac6d75115ce44bfa249Douglas Gregorvoid fnptrs()
42f639b9f3c6b081f076d2ac6d75115ce44bfa249Douglas Gregor{
52f639b9f3c6b081f076d2ac6d75115ce44bfa249Douglas Gregor  typedef void (*fnptr)();
62f639b9f3c6b081f076d2ac6d75115ce44bfa249Douglas Gregor  fnptr fp = 0;
72fe9b7fb07dff15dd15dd8755a9a9e6de0fe46fcRichard Trieu  void *vp = reinterpret_cast<void*>(fp); // expected-warning {{cast between pointer-to-function and pointer-to-object is an extension}}
82fe9b7fb07dff15dd15dd8755a9a9e6de0fe46fcRichard Trieu  (void)reinterpret_cast<fnptr>(vp); // expected-warning {{cast between pointer-to-function and pointer-to-object is an extension}}
92f639b9f3c6b081f076d2ac6d75115ce44bfa249Douglas Gregor}
10