Changeset 599
- Timestamp:
- Aug 15, 2003, 11:49:10 PM (22 years ago)
- Location:
- trunk/testcase
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/testcase/570asm.s
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r598 r599 5 5 .globl ExternCVoid 6 6 ExternCVoid: 7 ret7 jmp verify 8 8 9 9 .globl ExternCPVoid 10 10 ExternCPVoid: 11 ret11 jmp verify 12 12 13 13 .globl ExternCInt 14 14 ExternCInt: 15 ret15 jmp verify 16 16 17 17 .globl ExternCPType 18 18 ExternCPType: 19 ret19 jmp verify 20 20 21 21 .globl Void 22 22 Void: 23 ret23 jmp verify 24 24 25 25 .globl PVoid 26 26 PVoid: 27 ret27 jmp verify 28 28 29 29 .globl Int 30 30 Int: 31 ret31 jmp verify 32 32 33 33 .globl PType 34 34 PType: 35 jmp verify 36 37 38 .globl __ZN3foo16StaticMemberVoidEiiii 39 __ZN3foo16StaticMemberVoidEiiii: 40 jmp verify 41 42 .globl __ZN3foo17StaticMemberPVoidEiiii 43 __ZN3foo17StaticMemberPVoidEiiii: 44 jmp verify 45 46 .globl __ZN3foo15StaticMemberIntEiiii 47 __ZN3foo15StaticMemberIntEiiii: 48 jmp verify 49 50 .globl __ZN3foo17StaticMemberPTypeEiiii 51 __ZN3foo17StaticMemberPTypeEiiii: 52 jmp verify 53 54 55 .globl __ZN3foo10MemberVoidEiiii 56 __ZN3foo10MemberVoidEiiii: 57 jmp verify2 58 59 .globl __ZN3foo11MemberPVoidEiiii 60 __ZN3foo11MemberPVoidEiiii: 61 jmp verify2 62 63 .globl __ZN3foo9MemberIntEiiii 64 __ZN3foo9MemberIntEiiii: 65 jmp verify2 66 67 .globl __ZN3foo11MemberPTypeEiiii 68 __ZN3foo11MemberPTypeEiiii: 69 jmp verify2 70 71 72 73 verify: 74 pushl %ebp 75 movl %esp, %ebp 76 77 movl 8(%ebp), %eax 78 cmpl $1, %eax 79 je ok1 80 int $3 81 82 ok1: 83 movl 12(%ebp), %eax 84 cmpl $2, %eax 85 je ok2 86 int $3 87 88 89 ok2: 90 movl 16(%ebp), %eax 91 cmpl $3, %eax 92 je ok3 93 int $3 94 95 ok3: 96 movl 20(%ebp), %eax 97 cmpl $4, %eax 98 je ok4 99 int $3 100 101 ok4: 102 mov %ebp, %ebp 103 popl %ebp 35 104 ret 36 105 37 106 38 .globl __ZN3foo16StaticMemberVoidEv 39 __ZN3foo16StaticMemberVoidEv: 107 verify2: 108 pushl %ebp 109 movl %esp, %ebp 110 111 movl 4(%ebp), %eax 112 test %eax, %eax 113 jnz okthis 114 int $3 115 116 okthis: 117 movl 12(%ebp), %eax 118 cmpl $1, %eax 119 je ok21 120 int $3 121 122 ok21: 123 movl 16(%ebp), %eax 124 cmpl $2, %eax 125 je ok22 126 int $3 127 128 129 ok22: 130 movl 20(%ebp), %eax 131 cmpl $3, %eax 132 je ok23 133 int $3 134 135 ok23: 136 movl 24(%ebp), %eax 137 cmpl $4, %eax 138 je ok24 139 int $3 140 141 ok24: 142 mov %ebp, %ebp 143 popl %ebp 40 144 ret 41 145 42 .globl __ZN3foo17StaticMemberPVoidEv43 __ZN3foo17StaticMemberPVoidEv:44 ret45 46 .globl __ZN3foo15StaticMemberIntEv47 __ZN3foo15StaticMemberIntEv:48 ret49 50 .globl __ZN3foo17StaticMemberPTypeEv51 __ZN3foo17StaticMemberPTypeEv:52 ret53 54 .globl __ZN3foo10MemberVoidEv55 __ZN3foo10MemberVoidEv:56 ret57 58 .globl __ZN3foo11MemberPVoidEv59 __ZN3foo11MemberPVoidEv:60 ret61 62 .globl __ZN3foo9MemberIntEv63 __ZN3foo9MemberIntEv:64 ret65 66 .globl __ZN3foo11MemberPTypeEv67 __ZN3foo11MemberPTypeEv:68 ret69 -
Property cvs2svn:cvs-rev
changed from
-
trunk/testcase/570c.c
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r598 r599 6 6 */ 7 7 /* No underscore, No mangling. */ 8 void _System Void( void);9 void * _System PVoid( void);10 int _System Int( void);11 PTYPE _System PType( void);8 void _System Void(int a, int b, int c, int d); 9 void * _System PVoid(int a, int b, int c, int d); 10 int _System Int(int a, int b, int c, int d); 11 PTYPE _System PType(int a, int b, int c, int d); 12 12 13 13 /* … … 15 15 * Checks that there is not warnings on these. 16 16 */ 17 typedef void _System Typedef1Void( void);18 typedef void * _System Typedef1PVoid( void);19 typedef int _System Typedef1Int( void);20 typedef PTYPE _System Typedef1PType( void);17 typedef void _System Typedef1Void(int a, int b, int c, int d); 18 typedef void * _System Typedef1PVoid(int a, int b, int c, int d); 19 typedef int _System Typedef1Int(int a, int b, int c, int d); 20 typedef PTYPE _System Typedef1PType(int a, int b, int c, int d); 21 21 22 typedef void (_System Typedef2Void)( void);23 typedef void * (_System Typedef2PVoid)( void);24 typedef int (_System Typedef2Int)( void);25 typedef PTYPE (_System Typedef2PType)( void);22 typedef void (_System Typedef2Void)(int a, int b, int c, int d); 23 typedef void * (_System Typedef2PVoid)(int a, int b, int c, int d); 24 typedef int (_System Typedef2Int)(int a, int b, int c, int d); 25 typedef PTYPE (_System Typedef2PType)(int a, int b, int c, int d); 26 26 27 typedef void (* _System PTypedef1Void)( void);28 typedef void * (* _System PTypedef1PVoid)( void);29 typedef int (* _System PTypedef1Int)( void);30 typedef PTYPE (* _System PTypedef1PType)( void);27 typedef void (* _System PTypedef1Void)(int a, int b, int c, int d); 28 typedef void * (* _System PTypedef1PVoid)(int a, int b, int c, int d); 29 typedef int (* _System PTypedef1Int)(int a, int b, int c, int d); 30 typedef PTYPE (* _System PTypedef1PType)(int a, int b, int c, int d); 31 31 32 32 /* Alternate writing which should have the same effect I think... */ 33 typedef void (_System * PTypedef2Void)( void);34 typedef void * (_System * PTypedef2PVoid)( void);35 typedef int (_System * PTypedef2Int)( void);36 typedef PTYPE (_System * PTypedef2PType)( void);33 typedef void (_System * PTypedef2Void)(int a, int b, int c, int d); 34 typedef void * (_System * PTypedef2PVoid)(int a, int b, int c, int d); 35 typedef int (_System * PTypedef2Int)(int a, int b, int c, int d); 36 typedef PTYPE (_System * PTypedef2PType)(int a, int b, int c, int d); 37 37 38 38 … … 42 42 typedef struct VFT 43 43 { 44 void (_System * PStructMemberVoid)( void* pvThis);45 void * (_System * PStructMemberPVoid)( void* pvThis);46 int (_System * PStructMemberInt)( void* pvThis);47 PTYPE (_System * PStructMemberPType)( void* pvThis);44 void (_System * PStructMemberVoid)(int a, int b, int c, int d); 45 void * (_System * PStructMemberPVoid)(int a, int b, int c, int d); 46 int (_System * PStructMemberInt)(int a, int b, int c, int d); 47 PTYPE (_System * PStructMemberPType)(int a, int b, int c, int d); 48 48 49 49 /* Alternate writing which should have the same effect I think... */ 50 void ( _System * PStructMember2Void)( void* pvThis);51 void * ( _System * PStructMember2PVoid)( void* pvThis);52 int ( _System * PStructMember2Int)( void* pvThis);53 PTYPE ( _System * PStructMember2PType)( void* pvThis);50 void ( _System * PStructMember2Void)(int a, int b, int c, int d); 51 void * ( _System * PStructMember2PVoid)(int a, int b, int c, int d); 52 int ( _System * PStructMember2Int)(int a, int b, int c, int d); 53 PTYPE ( _System * PStructMember2PType)(int a, int b, int c, int d); 54 54 55 55 } VFT, *PVFT; 56 56 57 57 58 int DoC( void)58 int DoC(int a, int b, int c, int d) 59 59 { 60 VFT vft = {0,0,0,0}; 60 VFT vft = {Void, PVoid, Int, PType, 61 Void, PVoid, Int, PType}; 61 62 62 Void();63 PVoid();64 Int();65 PType();63 Typedef1Void * pfnTypedef1Void = Void; 64 Typedef1PVoid * pfnTypedef1PVoid = PVoid; 65 Typedef1Int * pfnTypedef1Int = Int; 66 Typedef1PType * pfnTypedef1PType = PType; 66 67 67 if (vft.PStructMemberVoid) 68 vft.PStructMemberVoid(&vft); 69 if (vft.PStructMemberPVoid) 70 vft.PStructMemberPVoid(&vft); 71 if (vft.PStructMemberInt) 72 vft.PStructMemberInt(&vft); 73 if (vft.PStructMemberPType) 74 vft.PStructMemberPType(&vft); 68 Typedef2Void * pfnTypedef2Void = Void; 69 Typedef2PVoid * pfnTypedef2PVoid = PVoid; 70 Typedef2Int * pfnTypedef2Int = Int; 71 Typedef2PType * pfnTypedef2PType = PType; 72 73 PTypedef1Void pfnPTypedef1Void = Void; 74 PTypedef1PVoid pfnPTypedef1PVoid = PVoid; 75 PTypedef1Int pfnPTypedef1Int = Int; 76 PTypedef1PType pfnPTypedef1PType = PType; 77 78 PTypedef2Void pfnPTypedef2Void = Void; 79 PTypedef2PVoid pfnPTypedef2PVoid = PVoid; 80 PTypedef2Int pfnPTypedef2Int = Int; 81 PTypedef2PType pfnPTypedef2PType = PType; 82 83 84 /* extern functions */ 85 Void(1,2,3,4); 86 PVoid(1,2,3,4); 87 Int(1,2,3,4); 88 PType(1,2,3,4); 89 90 /* typedefs */ 91 pfnTypedef1Void(1,2,3,4); 92 pfnTypedef1PVoid(1,2,3,4); 93 pfnTypedef1Int(1,2,3,4); 94 pfnTypedef1PType(1,2,3,4); 95 96 pfnTypedef2Void(1,2,3,4); 97 pfnTypedef2PVoid(1,2,3,4); 98 pfnTypedef2Int(1,2,3,4); 99 pfnTypedef2PType(1,2,3,4); 100 101 pfnPTypedef1Void(1,2,3,4); 102 pfnPTypedef1PVoid(1,2,3,4); 103 pfnPTypedef1Int(1,2,3,4); 104 pfnPTypedef1PType(1,2,3,4); 105 106 pfnPTypedef2Void(1,2,3,4); 107 pfnPTypedef2PVoid(1,2,3,4); 108 pfnPTypedef2Int(1,2,3,4); 109 pfnPTypedef2PType(1,2,3,4); 110 111 112 /* structs */ 113 vft.PStructMemberVoid(1,2,3,4); 114 vft.PStructMemberPVoid(1,2,3,4); 115 vft.PStructMemberInt(1,2,3,4); 116 vft.PStructMemberPType(1,2,3,4); 117 118 vft.PStructMember2Void(1,2,3,4); 119 vft.PStructMember2PVoid(1,2,3,4); 120 vft.PStructMember2Int(1,2,3,4); 121 vft.PStructMember2PType(1,2,3,4); 75 122 76 123 return 0; -
Property cvs2svn:cvs-rev
changed from
-
trunk/testcase/570main.cpp
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r598 r599 7 7 8 8 /* No underscore, No mangling. */ 9 extern "C" void _System ExternCVoid( void);10 extern "C" void * _System ExternCPVoid( void);11 extern "C" int _System ExternCInt( void);12 extern "C" PTYPE _System ExternCPType( void);9 extern "C" void _System ExternCVoid(int a, int b, int c, int d); 10 extern "C" void * _System ExternCPVoid(int a, int b, int c, int d); 11 extern "C" int _System ExternCInt(int a, int b, int c, int d); 12 extern "C" PTYPE _System ExternCPType(int a, int b, int c, int d); 13 13 14 14 /* No underscore, No mangling. */ 15 void _System Void( void);16 void * _System PVoid( void);17 int _System Int( void);18 PTYPE _System PType( void);15 void _System Void(int a, int b, int c, int d); 16 void * _System PVoid(int a, int b, int c, int d); 17 int _System Int(int a, int b, int c, int d); 18 PTYPE _System PType(int a, int b, int c, int d); 19 19 20 20 … … 23 23 { 24 24 public: 25 static void _System StaticMemberVoid( void);26 static void * _System StaticMemberPVoid( void);27 static int _System StaticMemberInt( void);28 static PTYPE _System StaticMemberPType( void);25 static void _System StaticMemberVoid(int a, int b, int c, int d); 26 static void * _System StaticMemberPVoid(int a, int b, int c, int d); 27 static int _System StaticMemberInt(int a, int b, int c, int d); 28 static PTYPE _System StaticMemberPType(int a, int b, int c, int d); 29 29 30 30 /* VAC365 allows this too, and actually mangles the … … 34 34 * We don't need to support this, it's just a curiosity. 35 35 */ 36 void _System MemberVoid( void);37 void * _System MemberPVoid( void);38 int _System MemberInt( void);39 PTYPE _System MemberPType( void);36 void _System MemberVoid(int a, int b, int c, int d); 37 void * _System MemberPVoid(int a, int b, int c, int d); 38 int _System MemberInt(int a, int b, int c, int d); 39 PTYPE _System MemberPType(int a, int b, int c, int d); 40 40 }; 41 41 … … 45 45 * Checks that there is not warnings on these. 46 46 */ 47 typedef void _System Typedef1Void( void);48 typedef void * _System Typedef1PVoid( void);49 typedef int _System Typedef1Int( void);50 typedef PTYPE _System Typedef1PType( void);47 typedef void _System Typedef1Void(int a, int b, int c, int d); 48 typedef void * _System Typedef1PVoid(int a, int b, int c, int d); 49 typedef int _System Typedef1Int(int a, int b, int c, int d); 50 typedef PTYPE _System Typedef1PType(int a, int b, int c, int d); 51 51 52 typedef void (_System Typedef2Void)( void);53 typedef void * (_System Typedef2PVoid)( void);54 typedef int (_System Typedef2Int)( void);55 typedef PTYPE (_System Typedef2PType)( void);52 typedef void (_System Typedef2Void)(int a, int b, int c, int d); 53 typedef void * (_System Typedef2PVoid)(int a, int b, int c, int d); 54 typedef int (_System Typedef2Int)(int a, int b, int c, int d); 55 typedef PTYPE (_System Typedef2PType)(int a, int b, int c, int d); 56 56 57 typedef void (* _System PTypedef1Void)( void);58 typedef void * (* _System PTypedef1PVoid)( void);59 typedef int (* _System PTypedef1Int)( void);60 typedef PTYPE (* _System PTypedef1PType)( void);57 typedef void (* _System PTypedef1Void)(int a, int b, int c, int d); 58 typedef void * (* _System PTypedef1PVoid)(int a, int b, int c, int d); 59 typedef int (* _System PTypedef1Int)(int a, int b, int c, int d); 60 typedef PTYPE (* _System PTypedef1PType)(int a, int b, int c, int d); 61 61 62 62 /* Alternate writing which should have the same effect I think... */ 63 typedef void (_System * PTypedef2Void)( void);64 typedef void * (_System * PTypedef2PVoid)( void);65 typedef int (_System * PTypedef2Int)( void);66 typedef PTYPE (_System * PTypedef2PType)( void);63 typedef void (_System * PTypedef2Void)(int a, int b, int c, int d); 64 typedef void * (_System * PTypedef2PVoid)(int a, int b, int c, int d); 65 typedef int (_System * PTypedef2Int)(int a, int b, int c, int d); 66 typedef PTYPE (_System * PTypedef2PType)(int a, int b, int c, int d); 67 67 68 68 … … 73 73 typedef struct VFT 74 74 { 75 void (* _System PStructMemberVoid)( void* pvThis);76 void * (* _System PStructMemberPVoid)( void* pvThis);77 int (* _System PStructMemberInt)( void* pvThis);78 PTYPE (* _System PStructMemberPType)( void* pvThis);75 void (* _System PStructMemberVoid)(int a, int b, int c, int d); 76 void * (* _System PStructMemberPVoid)(int a, int b, int c, int d); 77 int (* _System PStructMemberInt)(int a, int b, int c, int d); 78 PTYPE (* _System PStructMemberPType)(int a, int b, int c, int d); 79 79 80 80 /* Alternate writing which should have the same effect I think... */ 81 void ( _System * PStructMember2Void)( void* pvThis);82 void * ( _System * PStructMember2PVoid)( void* pvThis);83 int ( _System * PStructMember2Int)( void* pvThis);84 PTYPE ( _System * PStructMember2PType)( void* pvThis);81 void ( _System * PStructMember2Void)(int a, int b, int c, int d); 82 void * ( _System * PStructMember2PVoid)(int a, int b, int c, int d); 83 int ( _System * PStructMember2Int)(int a, int b, int c, int d); 84 PTYPE ( _System * PStructMember2PType)(int a, int b, int c, int d); 85 85 86 86 } VFT, *PVFT; … … 90 90 int main(void) 91 91 { 92 ExternCVoid(); 93 ExternCPVoid(); 94 ExternCInt(); 95 ExternCPType(); 92 VFT vft = {Void, PVoid, Int, PType, 93 Void, PVoid, Int, PType}; 96 94 97 Void();98 PVoid();99 Int();100 PType();95 Typedef1Void * pfnTypedef1Void = Void; 96 Typedef1PVoid * pfnTypedef1PVoid = PVoid; 97 Typedef1Int * pfnTypedef1Int = Int; 98 Typedef1PType * pfnTypedef1PType = PType; 101 99 102 foo::StaticMemberVoid(); 103 foo::StaticMemberPVoid(); 104 foo::StaticMemberInt(); 105 foo::StaticMemberPType(); 100 Typedef2Void * pfnTypedef2Void = Void; 101 Typedef2PVoid * pfnTypedef2PVoid = PVoid; 102 Typedef2Int * pfnTypedef2Int = Int; 103 Typedef2PType * pfnTypedef2PType = PType; 104 105 PTypedef1Void pfnPTypedef1Void = Void; 106 PTypedef1PVoid pfnPTypedef1PVoid = PVoid; 107 PTypedef1Int pfnPTypedef1Int = Int; 108 PTypedef1PType pfnPTypedef1PType = PType; 109 110 PTypedef2Void pfnPTypedef2Void = Void; 111 PTypedef2PVoid pfnPTypedef2PVoid = PVoid; 112 PTypedef2Int pfnPTypedef2Int = Int; 113 PTypedef2PType pfnPTypedef2PType = PType; 114 115 /* extern functions */ 116 ExternCVoid(1,2,3,4); 117 ExternCPVoid(1,2,3,4); 118 ExternCInt(1,2,3,4); 119 ExternCPType(1,2,3,4); 120 121 Void(1,2,3,4); 122 PVoid(1,2,3,4); 123 Int(1,2,3,4); 124 PType(1,2,3,4); 125 126 /* class */ 127 foo::StaticMemberVoid(1,2,3,4); 128 foo::StaticMemberPVoid(1,2,3,4); 129 foo::StaticMemberInt(1,2,3,4); 130 foo::StaticMemberPType(1,2,3,4); 106 131 107 132 foo obj; 108 obj.MemberVoid( );109 obj.MemberPVoid( );110 obj.MemberInt( );111 obj.MemberPType( );133 obj.MemberVoid(1,2,3,4); 134 obj.MemberPVoid(1,2,3,4); 135 obj.MemberInt(1,2,3,4); 136 obj.MemberPType(1,2,3,4); 112 137 113 VFT vft = {0,0,0,0}; 114 if (vft.PStructMemberVoid) 115 vft.PStructMemberVoid(&vft); 116 if (vft.PStructMemberPVoid) 117 vft.PStructMemberPVoid(&vft); 118 if (vft.PStructMemberInt) 119 vft.PStructMemberInt(&vft); 120 if (vft.PStructMemberPType) 121 vft.PStructMemberPType(&vft); 138 /* typedefs */ 139 pfnTypedef1Void(1,2,3,4); 140 pfnTypedef1PVoid(1,2,3,4); 141 pfnTypedef1Int(1,2,3,4); 142 pfnTypedef1PType(1,2,3,4); 143 144 pfnTypedef2Void(1,2,3,4); 145 pfnTypedef2PVoid(1,2,3,4); 146 pfnTypedef2Int(1,2,3,4); 147 pfnTypedef2PType(1,2,3,4); 148 149 pfnPTypedef1Void(1,2,3,4); 150 pfnPTypedef1PVoid(1,2,3,4); 151 pfnPTypedef1Int(1,2,3,4); 152 pfnPTypedef1PType(1,2,3,4); 153 154 pfnPTypedef2Void(1,2,3,4); 155 pfnPTypedef2PVoid(1,2,3,4); 156 pfnPTypedef2Int(1,2,3,4); 157 pfnPTypedef2PType(1,2,3,4); 158 159 160 /* structs */ 161 vft.PStructMemberVoid(1,2,3,4); 162 vft.PStructMemberPVoid(1,2,3,4); 163 vft.PStructMemberInt(1,2,3,4); 164 vft.PStructMemberPType(1,2,3,4); 165 166 vft.PStructMember2Void(1,2,3,4); 167 vft.PStructMember2PVoid(1,2,3,4); 168 vft.PStructMember2Int(1,2,3,4); 169 vft.PStructMember2PType(1,2,3,4); 122 170 123 171 /* test C stuff */ -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.