1/* Check if class references (generated for the NeXT runtime) are appropriately 2 folded. */ 3/* Author: Ziemowit Laski <zlaski@apple.com>. */ 4/* The ABI is different for m64 darwin so skip this test for now */ 5/* { dg-do compile { target { *-*-darwin* && { ! lp64 } } } } */ 6/* { dg-skip-if "" { *-*-darwin* } { "-fgnu-runtime" } { "" } } */ 7 8#include "../objc-obj-c++-shared/TestsuiteObject.h" 9 10typedef TestsuiteObject ObjectTypedef1; 11typedef ObjectTypedef1 ObjectTypedef2; 12@compatibility_alias ObjectAlias1 ObjectTypedef2; 13@compatibility_alias ObjectAlias2 ObjectAlias1; 14typedef ObjectAlias2 ObjectTypedef3; 15 16void foo(void) { 17 id obj = [TestsuiteObject new]; 18 obj = [ObjectTypedef1 new]; 19 obj = [ObjectTypedef2 new]; 20 obj = [ObjectTypedef3 new]; 21 obj = [ObjectAlias1 new]; 22 obj = [ObjectAlias2 new]; 23} 24 25/* { dg-final { scan-assembler "_OBJC_ClassRefs_0" } } */ 26/* { dg-final { scan-assembler-not "_OBJC_ClassRefs_1" } } */ 27