1/* Graceful handling of a syntax error.  */
2/* { dg-do compile } */
3/* Suppress warnings that the GNUStep headers introduce.  */
4/* { dg-additional-options "-std=gnu++11 -Wno-expansion-to-defined -Wno-variadic-macros" { target *-*-darwin* } } */
5
6#ifdef __NEXT_RUNTIME__
7#include "../objc-obj-c++-shared/F-NSObject.h"
8#define OBJECT NSObject
9#else
10#include <objc/Object.h>
11#define OBJECT Object
12#endif
13
14class foo {
15  public:
16    foo();
17    virtual ~foo();
18};
19
20
21extern void NXLog(const char *, ...);
22
23@interface Test2 : OBJECT {
24}
25- (void) foo2;
26@end
27
28@implementation Test2
29- (void) foo2
30  NXLog("Hello, world!"); /* { dg-line Test2_foo2_body } */
31  /* { dg-error "expected .\{. before .NXLog." "" { target *-*-* } Test2_foo2_body } */
32} /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
33@end
34
35/* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } Test2_foo2_body } */
36