⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fix-and-continue-1.m

📁 linux下编程用 编译软件
💻 M
字号:
/* Fix and continue should not interfere with computation of   local (static) function addresses.  *//* Author: Ziemowit Laski <zlaski@apple.com> */   /* { dg-do run  { target *-*-darwin* } } *//* { dg-options "-mfix-and-continue" } */#include <objc/Object.h>#include <stdlib.h>@class MyTarget, MySet;int global_value = 0;@interface MyTargetBuildContext : Object{  MyTarget * _target;  unsigned _cacheInvalDisableCount;  BOOL _cacheInvalidationNeeded;  unsigned short _isCreatingDependencies:1;  unsigned short _isCreatingHeadermap:1;  unsigned short _haveAddedIdleTimeInvoc:1;  BOOL _hasSetUpBuildSettings;}- (id)initWithTarget:(MyTarget *)target;- (MyTarget *)target;@end@interface MyTargetBuildContext (PrivateMethods)+ (MySet *)_headerFileExtensions;@end@interface MyCountedSet: Object {@public  int cardinality;}- (id)init;- (id)sortedArrayUsingFunction:(int (*)(id, id, void *))comparator with:(int)value;@end@implementation MyCountedSet- (id)init {  cardinality = 5;  global_value = 17;  return self;}- (id)sortedArrayUsingFunction:(int (*)(id, id, void *))comparator with:(int)value {  if(value == comparator(self, self, self))    return self;  return nil;}  @end@implementation MyTargetBuildContext : Object- (id)initWithTarget:(MyTarget *)target{  self = [super init];  return self;}- (MyTarget *)target{  return _target;}static int _MyCompareObjectsByDecreasingSetCount (id object1, id object2, MyCountedSet * countedSet){  global_value = 5;  return countedSet->cardinality;}+ (MySet *)_headerFileExtensions{  MySet * _headerFileExtensions = 0;  return _headerFileExtensions;}- (void)_recomputeHeadermap{  MyCountedSet *set = [MyCountedSet new];  int (*functionPointer)(id, id, void *) = (int (*)(id, id, void *))_MyCompareObjectsByDecreasingSetCount;  id result = [set sortedArrayUsingFunction:functionPointer with:5];}@endint main(void) {  MyTargetBuildContext *ctx = [MyTargetBuildContext new];  [ctx _recomputeHeadermap];  if (global_value != 5)    abort();  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -