Merge change 9365
* changes: Test multiple levels of pointer indirection.
This commit is contained in:
commit
18f275a901
|
@ -0,0 +1,35 @@
|
|||
// Test multiple levels of indirection
|
||||
|
||||
void testsingle() {
|
||||
int a = 0;
|
||||
int* pa = &a;
|
||||
printf("a = %d, *pa = %d\n", a, *pa);
|
||||
*pa = 2;
|
||||
printf("a = %d, *pa = %d\n", a, *pa);
|
||||
}
|
||||
|
||||
void testdouble() {
|
||||
int a = 0;
|
||||
int* pa = &a;
|
||||
int** ppa = &pa;
|
||||
printf("a = %d, *pa = %d **ppa = %d\n", a, *pa, **ppa);
|
||||
**ppa = 2;
|
||||
printf("a = %d, *pa = %d **ppa = %d\n", a, *pa, **ppa);
|
||||
}
|
||||
|
||||
void testtripple() {
|
||||
int a = 0;
|
||||
int* pa = &a;
|
||||
int** ppa = &pa;
|
||||
int*** pppa = &ppa;
|
||||
printf("a = %d, *pa = %d **ppa = %d\n ***pppa = %d", a, *pa, **ppa, ***pppa);
|
||||
***pppa = 2;
|
||||
printf("a = %d, *pa = %d **ppa = %d\n ***pppa = %d", a, *pa, **ppa, ***pppa);
|
||||
}
|
||||
|
||||
int main() {
|
||||
testsingle();
|
||||
testdouble();
|
||||
testdouble();
|
||||
return 0;
|
||||
}
|
|
@ -324,11 +324,22 @@ result: 0""", """Literals: 1 -1
|
|||
0
|
||||
""")
|
||||
|
||||
def testFilm (self):
|
||||
def testFilm(self):
|
||||
self.compileCheck(["-R", "data/film.c"], """Executing compiled code:
|
||||
result: 0""", """testing...
|
||||
Total bad: 0
|
||||
""")
|
||||
|
||||
def testpointers2(self):
|
||||
self.compileCheck(["-R", "data/pointers2.c"], """Executing compiled code:
|
||||
result: 0""", """a = 0, *pa = 0
|
||||
a = 2, *pa = 2
|
||||
a = 0, *pa = 0 **ppa = 0
|
||||
a = 2, *pa = 2 **ppa = 2
|
||||
a = 0, *pa = 0 **ppa = 0
|
||||
a = 2, *pa = 2 **ppa = 2
|
||||
""")
|
||||
|
||||
if __name__ == '__main__':
|
||||
if not outputCanRun():
|
||||
print "Many tests are expected to fail, because acc is not a 32-bit x86 Linux executable."
|
||||
|
|
Loading…
Reference in New Issue