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
6
parse.c
6
parse.c
|
@ -482,9 +482,11 @@ enum ParseResult ParseStatement(struct ParseState *Parser)
|
|||
ProgramFail(Parser, "value required in return");
|
||||
|
||||
if (TopStackFrame->ReturnValue->Typ->Base != TypeVoid)
|
||||
{
|
||||
ExpressionAssign(Parser, TopStackFrame->ReturnValue, CValue, TRUE, NULL, 0);
|
||||
|
||||
VariableStackPop(Parser, CValue);
|
||||
VariableStackPop(Parser, CValue);
|
||||
}
|
||||
|
||||
Parser->Mode = RunModeReturn;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,22 +1,5 @@
|
|||
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
|
||||
void swap(int a, int b)
|
||||
{
|
||||
|
@ -59,17 +42,38 @@ void quicksort(int left, int right)
|
|||
quicksort(index + 1, right);
|
||||
}
|
||||
|
||||
int i;
|
||||
void main()
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
printf("%d ", array[i]);
|
||||
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;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
printf("%d ", array[i]);
|
||||
|
||||
printf("\n");
|
||||
printf("\n");
|
||||
|
||||
quicksort(0, 15);
|
||||
quicksort(0, 15);
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
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 \
|
||||
23_type_coercion.test \
|
||||
24_math_library.test \
|
||||
25_quicksort.test \
|
||||
26_character_constants.test
|
||||
|
||||
%.test: %.expect %.c
|
||||
|
|
Loading…
Reference in a new issue