// RUN: not %clang_cc1 -emit-llvm -fobjc-arc -triple x86_64-apple-darwin10 %s -DPROTOEXPR -o - 2>&1 \
// RUN:     | FileCheck -check-prefix=PROTOEXPR %s

// RUN: %clang_cc1 -emit-llvm -fobjc-arc -triple x86_64-apple-darwin10 %s -DREDUNDANCY -o - \
// RUN:     | FileCheck -check-prefix=REDUNDANCY1 %s
// RUN: %clang_cc1 -emit-llvm -fobjc-arc -triple x86_64-apple-darwin10 %s -DREDUNDANCY -o - \
// RUN:     | FileCheck -check-prefix=REDUNDANCY2 %s

// RUN: %clang_cc1 -emit-llvm -fobjc-arc -triple x86_64-apple-darwin10 %s -DBASE -o - \
// RUN:     | FileCheck -check-prefix=NONFRAGILE %s
// RUN: %clang_cc1 -emit-llvm -fobjc-arc -triple x86_64-apple-darwin10 %s -DINHERITANCE -o - \
// RUN:     | FileCheck -check-prefix=INHERITANCE %s

// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin -fobjc-runtime=macosx-fragile-10.5 %s -DBASE -o - \
// RUN:     | FileCheck -check-prefix=FRAGILE %s
// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin -fobjc-runtime=macosx-fragile-10.5 %s -DINHERITANCE -o - \
// RUN:     | FileCheck -check-prefix=FRAGILEINHERITANCE %s

// RUN: %clang_cc1 -emit-llvm -triple x86_64-linux-gnu -fobjc-runtime=gnustep %s -DBASE -o - \
// RUN:     | FileCheck -check-prefix=GNU %s
// RUN: %clang_cc1 -emit-llvm -triple x86_64-linux-gnu -fobjc-runtime=gnustep %s -DINHERITANCE -o - \
// RUN:     | FileCheck -check-prefix=GNUINHERITANCE %s
//
// RUN: %clang_cc1 -emit-llvm -triple x86_64-linux-gnu -fobjc-runtime=gnustep-2 %s -DBASE -o - \
// RUN:     | FileCheck -check-prefix=GNU2 %s
// RUN: %clang_cc1 -emit-llvm -triple x86_64-linux-gnu -fobjc-runtime=gnustep-2 %s -DINHERITANCE -o - \
// RUN:     | FileCheck -check-prefix=GNU2INHERITANCE %s

__attribute__((objc_root_class))
@interface Root
@end
@implementation Root
@end

#ifdef REDUNDANCY
// REDUNDANCY1-NOT: _OBJC_CLASS_PROTOCOLS_$_Implementer{{.*}}_OBJC_PROTOCOL_$_B
// REDUNDANCY2:     _OBJC_CLASS_PROTOCOLS_$_Implementer{{.*}}_OBJC_PROTOCOL_$_C{{.*}}_OBJC_PROTOCOL_$_A
@protocol C
@end
@protocol B <C>
@end
@protocol A <B>
@end
__attribute__((objc_non_runtime_protocol)) @protocol Alpha<A>
@end
__attribute__((objc_non_runtime_protocol)) @protocol Beta<B>
@end
@interface Implementer : Root <Alpha, Beta, C>
@end
@implementation Implementer
@end
#endif

#ifdef BASE
// Confirm that we're not emitting protocol information for the
// NONFRAGILE-NOT: OBJC_CLASS_NAME{{.*}}NonRuntimeProtocol
// NONFRAGILE-NOT: _OBJC_$_PROTOCOL_INSTANCE_METHODS_NonRuntimeProtocol
// NONFRAGILE-NOT: _OBJC_$_PROTOCOL_CLASS_METHODS_NonRuntimeProtocol
// NONFRAGILE-NOT: _OBJC_PROTOCOL_$_NonRuntimeProtocol
// NONFRAGILE-NOT: _OBJC_LABEL_PROTOCOL_$_NonRuntimeProtocol
// NONFRAGILE-NOT: _OBJC_CLASS_PROTOCOLS_$_NonRuntimeImplementer
// FRAGILE-NOT: OBJC_CLASS_NAME_.{{.*}}"Runtime\00"
// FRAGILE-NOT: OBJC_PROTOCOL_NonRuntime
// FRAGILE_NOT: OBJC_PROTOCOLS_NonRuntimeImplementer
// GNU-NOT: private unnamed_addr constant {{.*}} c"NonRuntimeProtocol\00"
// GNU-NOT: @.objc_protocol {{.*}}
// GNU2-NOT: private unnamed_addr constant {{.*}} c"NonRuntimeProtocol\00"
// GNU2-NOT: @.objc_protocol {{.*}}
__attribute__((objc_non_runtime_protocol))
@protocol NonRuntimeProtocol
- (void)doThing;
+ (void)doClassThing;
@end
// NONFRAGILE: @"_OBJC_METACLASS_RO_$_NonRuntimeImplementer" {{.*}} %struct._objc_protocol_list* null
// NONFRAGILE: @"_OBJC_CLASS_RO_$_NonRuntimeImplementer" {{.*}} %struct._objc_protocol_list* null
@interface NonRuntimeImplementer : Root <NonRuntimeProtocol>
- (void)doThing;
+ (void)doClassThing;
@end

@implementation NonRuntimeImplementer
- (void)doThing {
}
+ (void)doClassThing {
}
@end
#endif

#ifdef PROTOEXPR
__attribute__((objc_non_runtime_protocol))
@protocol NonRuntimeProtocol
@end
void use() {
  // PROTOEXPR: cannot use a protocol declared 'objc_non_runtime_protocol' in a @protocol expression
  Protocol *p = @protocol(NonRuntimeProtocol);
}
#endif

#ifdef INHERITANCE
// Confirm that we only emit references to the non-runtime protocols and
// properly walk the DAG to find the right protocols.
// INHERITANCE: OBJC_PROTOCOL_$_R2{{.*}}
// INHERITANCE: OBJC_PROTOCOL_$_R3{{.*}}
// INHERITANCE: @"_OBJC_CLASS_PROTOCOLS_$_Implementer" {{.*}}_OBJC_PROTOCOL_$_R2{{.*}}_OBJC_PROTOCOL_$_R3

// FRAGILEINHERITANCE: OBJC_PROTOCOL_R2
// FRAGILEINHERITANCE: OBJC_PROTOCOL_R3
// FRAGILEINHERITANCE: OBJC_CLASS_PROTOCOLS_Implementer{{.*}}OBJC_PROTOCOL_R2{{.*}}OBJC_PROTOCOL_R3

// GNUINHERITANCE-DAG: @[[Proto1:[0-9]]]{{.*}}c"R1\00"
// GNUINHERITANCE-DAG: [[P1Name:@.objc_protocol.[0-9]*]]{{.*}}@[[Proto1]]
// GNUINHERITANCE-DAG: @[[Proto2:[0-9]]]{{.*}}c"R2\00"
// GNUINHERITANCE-DAG: [[P2Name:@.objc_protocol.[0-9]+]]{{.*}}@[[Proto2]]
// GNUINHERITANCE-DAG: @[[Proto3:[0-9]]]{{.*}}c"R3\00"
// GNUINHERITANCE-DAG: [[P3Name:@.objc_protocol.[0-9]+]]{{.*}}@[[Proto3]]
// GNUINHERITANCE-DAG: @.objc_protocol_list{{.*}}
// GNUINHERITANCE: @.objc_protocol_list{{.*}}[[Proto3]]{{.*}}[[Proto2]]

// GNU2INHERITANCE-DAG: @[[Proto1:[0-9]]]{{.*}}c"R1\00"
// GNU2INHERITANCE-DAG: _OBJC_PROTOCOL_R1{{.*}}@[[Proto1]]
// GNU2INHERITANCE-DAG: @[[Proto2:[0-9]]]{{.*}}c"R2\00"
// GNU2INHERITANCE-DAG: _OBJC_PROTOCOL_R2{{.*}}@[[Proto2]]
// GNU2INHERITANCE-DAG: @[[Proto3:[0-9]]]{{.*}}c"R3\00"
// GNU2INHERITANCE-DAG: _OBJC_PROTOCOL_R3{{.*}}@[[Proto3]]
// GNU2INHERITANCE: @.objc_protocol_list{{.*}}_OBJC_PROTOCOL_R2{{.*}}_OBJC_PROTOCOL_R3
@protocol R1
@end
@protocol R2
@end
@protocol R3 <R1>
@end
__attribute__((objc_non_runtime_protocol)) @protocol N3
@end
__attribute__((objc_non_runtime_protocol)) @protocol N1<R3, R2, N3>
@end
__attribute__((objc_non_runtime_protocol)) @protocol N2<N1, R2>
@end
@interface Implementer : Root <N2, R2>
@end
@implementation Implementer
@end
#endif
