brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 5725ef1 Raw
70 lines · plain
1// UNSUPPORTED: target={{.*}}-aix{{.*}}2// RUN: rm -rf %t3// RUN: split-file %s %t4// RUN: %clang_cc1 -fsyntax-only -I%t/include %t/test.m \5// RUN:            -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/modules.cache -fmodule-name=CheckOverride6 7// Test that if we have the same method in a different module, it's not an8// override as it is the same method and it has the same DeclContext but a9// different object in the memory.10 11 12//--- include/CheckOverride.h13@interface NSObject14@end15 16@interface CheckOverrideInterfaceOnly: NSObject17- (void)potentialOverrideInterfaceOnly;18@end19 20@interface CheckOverrideCategoryOnly: NSObject21@end22@interface CheckOverrideCategoryOnly(CategoryOnly)23- (void)potentialOverrideCategoryOnly;24@end25 26@interface CheckOverrideImplementationOfInterface: NSObject27- (void)potentialOverrideImplementationOfInterface;28@end29 30@interface CheckOverrideImplementationOfCategory: NSObject31@end32@interface CheckOverrideImplementationOfCategory(CategoryImpl)33- (void)potentialOverrideImplementationOfCategory;34@end35 36//--- include/Redirect.h37// Ensure CheckOverride is imported as the module despite all `-fmodule-name` flags.38#import <CheckOverride.h>39 40//--- include/module.modulemap41module CheckOverride {42  header "CheckOverride.h"43}44module Redirect {45  header "Redirect.h"46  export *47}48 49//--- test.m50#import <CheckOverride.h>51#import <Redirect.h>52 53@implementation CheckOverrideImplementationOfInterface54- (void)potentialOverrideImplementationOfInterface {}55@end56 57@implementation CheckOverrideImplementationOfCategory58- (void)potentialOverrideImplementationOfCategory {}59@end60 61void triggerOverrideCheck(CheckOverrideInterfaceOnly *intfOnly,62                          CheckOverrideCategoryOnly *catOnly,63                          CheckOverrideImplementationOfInterface *intfImpl,64                          CheckOverrideImplementationOfCategory *catImpl) {65  [intfOnly potentialOverrideInterfaceOnly];66  [catOnly potentialOverrideCategoryOnly];67  [intfImpl potentialOverrideImplementationOfInterface];68  [catImpl potentialOverrideImplementationOfCategory];69}70