llvm-project/clang/test/SemaObjC/static-ivar-ref-1.m
Aaron Ballman 5824d2bb0f Fix the declaration printer to properly handle prototypes in C
Previously, we would take a declaration like void f(void) and print it
as void f(). That's correct in C++ as far as it goes, but is incorrect
in C because that converts the function from having a prototype to one
which does not.

This turns out to matter for some of our tests that use the pretty
printer where we'd like to get rid of the K&R prototypes from the test
but can't because the test is checking the pretty printed function
signature, as done with the ARCMT tests.
2022-02-17 13:54:09 -05:00

31 lines
574 B
Objective-C

// RUN: %clang_cc1 -triple i386-unknown-unknown -ast-print %s 2>&1 | FileCheck %s
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -ast-print %s 2>&1 | FileCheck %s
@interface current
{
@public
int ivar;
int ivar1;
int ivar2;
}
@end
current *pc;
int foo(void)
{
return pc->ivar2 + (*pc).ivar + pc->ivar1;
}
// CHECK: @interface current{
// CHECK: int ivar;
// CHECK: int ivar1;
// CHECK: int ivar2;
// CHECK: }
// CHECK: @end
// CHECK: current *pc;
// CHECK: int foo(void) {
// CHECK: return pc->ivar2 + (*pc).ivar + pc->ivar1;
// CHECK: }