Fixed a problem with returning void.
Updated quicksort test to be a real working test. git-svn-id: http://picoc.googlecode.com/svn/trunk@327 21eae674-98b7-11dd-bd71-f92a316d2d60
This commit is contained in:
parent
b55ab05d48
commit
d432ebf74a
4
parse.c
4
parse.c
|
@ -482,9 +482,11 @@ enum ParseResult ParseStatement(struct ParseState *Parser)
|
||||||
ProgramFail(Parser, "value required in return");
|
ProgramFail(Parser, "value required in return");
|
||||||
|
|
||||||
if (TopStackFrame->ReturnValue->Typ->Base != TypeVoid)
|
if (TopStackFrame->ReturnValue->Typ->Base != TypeVoid)
|
||||||
|
{
|
||||||
ExpressionAssign(Parser, TopStackFrame->ReturnValue, CValue, TRUE, NULL, 0);
|
ExpressionAssign(Parser, TopStackFrame->ReturnValue, CValue, TRUE, NULL, 0);
|
||||||
|
VariableStackPop(Parser, CValue);
|
||||||
|
}
|
||||||
|
|
||||||
VariableStackPop(Parser, CValue);
|
|
||||||
Parser->Mode = RunModeReturn;
|
Parser->Mode = RunModeReturn;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,22 +1,5 @@
|
||||||
int array[16];
|
int array[16];
|
||||||
|
|
||||||
array[0] = 62;
|
|
||||||
array[1] = 83;
|
|
||||||
array[2] = 4;
|
|
||||||
array[3] = 89;
|
|
||||||
array[4] = 36;
|
|
||||||
array[5] = 21;
|
|
||||||
array[6] = 74;
|
|
||||||
array[7] = 37;
|
|
||||||
array[8] = 65;
|
|
||||||
array[9] = 33;
|
|
||||||
array[10] = 96;
|
|
||||||
array[11] = 38;
|
|
||||||
array[12] = 53;
|
|
||||||
array[13] = 16;
|
|
||||||
array[14] = 74;
|
|
||||||
array[15] = 55;
|
|
||||||
|
|
||||||
//Swap integer values by array indexes
|
//Swap integer values by array indexes
|
||||||
void swap(int a, int b)
|
void swap(int a, int b)
|
||||||
{
|
{
|
||||||
|
@ -59,17 +42,38 @@ void quicksort(int left, int right)
|
||||||
quicksort(index + 1, right);
|
quicksort(index + 1, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
int i;
|
void main()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
array[0] = 62;
|
||||||
printf("%d ", array[i]);
|
array[1] = 83;
|
||||||
|
array[2] = 4;
|
||||||
|
array[3] = 89;
|
||||||
|
array[4] = 36;
|
||||||
|
array[5] = 21;
|
||||||
|
array[6] = 74;
|
||||||
|
array[7] = 37;
|
||||||
|
array[8] = 65;
|
||||||
|
array[9] = 33;
|
||||||
|
array[10] = 96;
|
||||||
|
array[11] = 38;
|
||||||
|
array[12] = 53;
|
||||||
|
array[13] = 16;
|
||||||
|
array[14] = 74;
|
||||||
|
array[15] = 55;
|
||||||
|
|
||||||
printf("\n");
|
for (i = 0; i < 16; i++)
|
||||||
|
printf("%d ", array[i]);
|
||||||
|
|
||||||
quicksort(0, 15);
|
printf("\n");
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
quicksort(0, 15);
|
||||||
printf("%d ", array[i]);
|
|
||||||
|
|
||||||
printf("\n");
|
for (i = 0; i < 16; i++)
|
||||||
|
printf("%d ", array[i]);
|
||||||
|
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
main();
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ TESTS= 00_assignment.test \
|
||||||
22_floating_point.test \
|
22_floating_point.test \
|
||||||
23_type_coercion.test \
|
23_type_coercion.test \
|
||||||
24_math_library.test \
|
24_math_library.test \
|
||||||
|
25_quicksort.test \
|
||||||
26_character_constants.test
|
26_character_constants.test
|
||||||
|
|
||||||
%.test: %.expect %.c
|
%.test: %.expect %.c
|
||||||
|
|
Loading…
Reference in a new issue