// RUN: %clang_cc1 -fsyntax-only -verify %s

@interface NSString @end

@interface NSString (NSStringExtensionMethods)
+ (id)stringWithUTF8String:(const char *)nullTerminatedCString;
@end

extern char *strdup(const char *str);

id constant_string(void) {
    return @("boxed constant string.");
}

id dynamic_string(void) {
    return @(strdup("boxed dynamic string"));
}

id const_char_pointer(void) {
    return @((const char *)"constant character pointer");
}

id missing_parentheses(void) {
    return @(5;             // expected-error {{expected ')'}} \
                            // expected-note {{to match this '('}}
}

// rdar://10679157
void bar(id p);
void foo(id p) {
        bar(@{p, p}); // expected-error {{expected ':'}}
        bar(0);
        bar(0);
}
