Close files that were fopen:ed

This commit is contained in:
Michael Schierl 2020-12-21 16:57:17 +01:00
parent 608fba306f
commit 91bab2ef98
12 changed files with 105 additions and 53 deletions

View File

@ -39,6 +39,8 @@ int main()
global_token = read_all_tokens(in, global_token, "tape_01");
fclose(in);
if(NULL == global_token)
{
file_print("Either no input files were given or they were empty\n", stderr);
@ -59,5 +61,7 @@ int main()
file_print("\n# Program strings\n", destination_file);
recursive_output(strings_list, destination_file);
file_print("\n:STACK\n", destination_file);
fclose(destination_file)
return EXIT_SUCCESS;
}

6
cc.c
View File

@ -63,6 +63,7 @@ int main(int argc, char** argv)
exit(EXIT_FAILURE);
}
global_token = read_all_tokens(in, global_token, name);
fclose(in);
i = i + 2;
}
else if(match(argv[i], "-o") || match(argv[i], "--output"))
@ -154,5 +155,10 @@ int main(int argc, char** argv)
recursive_output(strings_list, destination_file);
if(KNIGHT_NATIVE == Architecture) file_print("\n:STACK\n", destination_file);
else if(!DEBUG) file_print("\n:ELF_end\n", destination_file);
if (destination_file != stdout)
{
fclose(destination_file);
}
return EXIT_SUCCESS;
}

View File

@ -87,16 +87,16 @@ a2a2308a472736f56530fc66016503f2ecda3072175728b9950baa42af588d0a test/results/t
390deb0728a6ee883ef4ccd4720041ee77a69d0d218b25403846704f6300d3e2 test/results/test0014-armv7l-binary
21ff1e3cc2e36bf3b096ab47487b37ec932aa51ddce106ed9fbb85945de1733d test/results/test0014-knight-posix-binary
e783d1a24a892f326ef8166d9fd0bf318d93fa7112b244973569e4332d9c5f0d test/results/test0014-x86-binary
79e72f4683bd8b97911260b84ff4b04594bac42dde3d917c5cb9537a51c81747 test/results/test0015-aarch64-binary
4e007d85c9866596807abfd328d674770743daa22549f989f82c24868671792a test/results/test0015-amd64-binary
469ae52e773e33a06332e6372eee87c9243d833ea16153e9aeef33ebcc06deb7 test/results/test0015-armv7l-binary
1b24c72416b5e262a03a512fe0db7d3777741d0f6b5116f9ff10da5b8184a646 test/results/test0015-knight-posix-binary
fe84418a5aa71ba024a3910d66ff0ea809c855a47383cd64a8dac00a329e32aa test/results/test0015-x86-binary
061ba8f44ae60f4c2a3315d5ff0512bb22f8d9fca0ef7d8e8c56fad3605bfb87 test/results/test0016-aarch64-binary
44916f3c2efb03442a359e41eb9768d8c395c626c6b364b55079318265929583 test/results/test0016-amd64-binary
910e97d9a9a8bc8b6e5979641c5a2516acdbd45709fe67462602d7fd429fee15 test/results/test0016-armv7l-binary
ce13dcffd4d6c09c477cb3d6c6abf87412ccc2868c7a85aa3b1b311505460909 test/results/test0016-knight-posix-binary
5e617d9934312d4a9d27870af995fb2171cb9c5fb6f7b12c118df797dc47a1c9 test/results/test0016-x86-binary
c060cca19b96fc6e31fd92a15527bfba428f41ff017900cc0ec7a2546c8e4277 test/results/test0015-aarch64-binary
0aeb06505099217e667c75fa2560c1669546d0114430ac728970b8d5015fc526 test/results/test0015-amd64-binary
faa2be23f7e0e4ad26b047f040a1d05701d2ea808e3c5b2ca8396df13ddac282 test/results/test0015-armv7l-binary
0f5ff7e0f342872d60ea08fb9df1829e2b2c345e85a21757d8b41ff760f49e5f test/results/test0015-knight-posix-binary
6cf25bf80cf50bceb5d24ffe3cc21ef22fbbb4129a2d3ea587482d75fbe98c8f test/results/test0015-x86-binary
580e15ab50b46e00c46b64b028acec2ecb0fa45c356fdcccf40eda8943869d68 test/results/test0016-aarch64-binary
a392314cece371cfd14548a80ebcffb946d5fb5976a4232930d0cc6808d87044 test/results/test0016-amd64-binary
853dcdc7389018f8ea01c7e8255b5b3e82ab999049753bd33bcc3c16ac697c4e test/results/test0016-armv7l-binary
f9eca6184dc7286aadaf86a915f222d55368a58e5114d8ef1ea92357f4723e9f test/results/test0016-knight-posix-binary
de8a495ad6abaf71c11f145e02fdc199e7a58f6e6e75c422787e31dcdd06f340 test/results/test0016-x86-binary
ca186d12b91ad4f89141c05345680fe83a161766ba4bb49ff0ea28bde77e89b1 test/results/test0017-aarch64-binary
bd70143ec9764bd5681c72e173b6baaca7a486c9330974ca82fb7e997249f572 test/results/test0017-amd64-binary
4618cba0ac8a2aa09c434388be9e2275cfb512c457a9f10e2ec64c06a3f4cf2c test/results/test0017-armv7l-binary
@ -109,11 +109,11 @@ bdb95323821eea5b757445d1d4a8f79256a4b665c2a0666cbbb7931550ba4a6f test/results/t
cc0da63ac84b37fef8e0367246a01b3aea7be95dd410297d80500e8d43a54b32 test/results/test0018-knight-native-binary
a2cba152dd5dd47a574aec274d22fbda6efad301ddd942cdd928b69f92902fcb test/results/test0018-knight-posix-binary
b547b060881bbbd564d18575b5a96b4f5837ece88ea1f7a20bc5fb1b736361e4 test/results/test0018-x86-binary
b1e368b0646314160216099aa710ba13322fce4d2254571283f07eb2f7234b5d test/results/test0019-aarch64-binary
4408ec0de10d5acf615a993950e42f4e9d5cfcd6a4e734a3ad258fb94cfebda6 test/results/test0019-amd64-binary
7146c67402facbef9e1c5aa6551d6cf537ab48ab5ff232b919a311933a2099b7 test/results/test0019-armv7l-binary
6689822b33bc8ba14c5b63d3a924c17e8de6452b8cd3d50aceb8a68ca0063c5c test/results/test0019-knight-posix-binary
780d1f741322cf286cdf002bc8e7bb49f958a2d5bc641ec4cb79686c330b4ddd test/results/test0019-x86-binary
09677cd8645a1132cb3ef97e273345fc615a80bbcbfde877b2542516a6a9c9a5 test/results/test0019-aarch64-binary
21a327fac030c95acf88b381f8d465236bea4e5a09810ecdbd21fec7e4e14e3b test/results/test0019-amd64-binary
62f54477c4e06a06dc81e7c2ae8a52e0ad7591e65631c6c169bd015b262720b2 test/results/test0019-armv7l-binary
42ce3a05a5c0c622fa92be0cf28ca5914ccede357efc814ab9d0eebe18a7c517 test/results/test0019-knight-posix-binary
0d43d6fe0e412fcefaf17c3bd720b11235c6123bd393792b42792034a964b2a5 test/results/test0019-x86-binary
6b31e8ee54270d38a1801f7614ae6247f59d44a2758f344b07a72794019290f4 test/results/test0020-aarch64-binary
6b2956b106dd16bb55d8d011b48e674ee3b70bbb0bb83efadca01d446666e21e test/results/test0020-amd64-binary
b29aca7f0b63659915fe431e290f821cf17071983613021aacb8985d376bb206 test/results/test0020-armv7l-binary
@ -128,49 +128,49 @@ d7710f837d6461d5eb2391614553c7f69fa7e6211b201dca7790d21eeac6150a test/results/t
14b9a108bdee811c0e9ff3f1be1299767a0d8b49319efbfd9b5f269bf5a057ec test/results/test0022-aarch64-binary
55fe99fe544bf885da6f3e9ab5463d75cd79e85053179b65ee122716792cbc15 test/results/test0022-amd64-binary
2d63c3a5a2c5b5ae2ea2e93c430027b4b418e229a963c66b9a3bc34307a55eba test/results/test0022-armv7l-binary
518da1385c7e6012743e43d4dc8054f9b40e2f1bd59a8e218716a52a71e3f149 test/results/test0022-knight-posix-binary
142893c2ce1f06126493c2dd6b4c1a4f4c6c86a581c255b22dc405668750175a test/results/test0022-knight-posix-binary
fefd0c6fff7a65b1db820d731e425086e8051bb06fd0a47476feeb79e8b9b5a9 test/results/test0022-x86-binary
5a9a0a19187247ed89d55aeb0b02beebae792b2908e70cf558042887878dcbc3 test/results/test0023-aarch64-binary
8cd6f04e55eb1d2c73315df8f4959d691c1243550c29671c2e8adc3cdbf1990d test/results/test0023-amd64-binary
afd5d479066402228964a3216235f091065b0922b76576a7c972e93f0fb88684 test/results/test0023-armv7l-binary
51cd8828b1e48aaffebad01763e65dadb57e962346c1d31165830437e452f9cf test/results/test0023-knight-posix-binary
c487702062d19227e59c1f6280ef5f24d48f9c652801f4a1eaa0412ec9dda92d test/results/test0023-x86-binary
e492e35afe92c5ccfc1d4fbd6da75ecfc1680cb331a768658e731bf5a5b4d0b0 test/results/test0100-aarch64-binary
ed42d7ef7b3f1e99b1266c9d8cc5032bd17f29880e2c1ddca7031795459a1aa7 test/results/test0100-amd64-binary
3abd9279114df2afa56fa3bbc2a5529174f8fb5d63878dc37f289ca48ef70f41 test/results/test0100-armv7l-binary
6cd0193898188f5f198638070940305a99e7d2371bea4195cdd0658994bd6fb2 test/results/test0100-knight-posix-binary
c21664610539bb9046895a98c46d8f30d24726278ad24f5ab7676d1f3b5d4925 test/results/test0100-x86-binary
996e9bb6e1987af468736ff5dbed69aa84d8b82207b70f9752713d8e9139f0fb test/results/test0101-aarch64-binary
3aa111b5734f52718ae4072f05a93ecaa47e4f75cb0b7f2e8671b476e6ddffdd test/results/test0101-amd64-binary
3947f4b38f71419098aefb50e7fd95f76d7f8bd71104991c8f6723208c0ea673 test/results/test0101-armv7l-binary
9590c19eb24b16bb8d4dfc4bb33b4696dd239463a0484dd57477dcb3ea63755b test/results/test0101-knight-posix-binary
46f85b1c300ebe546b1ab9c12df053b85764e9b699e11e6e9b19d7f748e9befb test/results/test0101-x86-binary
f1a022b13449ddbe3733aa8ca7abc1b8ed8bff4f02fe5453098a37f0a754aec3 test/results/test0102-aarch64-binary
20f52eccef8c3b373550c3d060fc84f55d31594016144300bab3b25d0bb60a1c test/results/test0102-amd64-binary
6d998868c98f4a7cd196d278f6cbc86b261cc6ae9c401ebf822bd8739aff714c test/results/test0102-armv7l-binary
12513a5a0b8f76862f3ba72c0490a2d0bf7853f77644f69fe7634844e0ef996a test/results/test0102-knight-posix-binary
c2bb9376fd5f815f6205486cc58c64f98f87ca60a58547f388704943b8de4172 test/results/test0102-x86-binary
835928a11aae4288a665818f052f8149aca9ed5f420e0dfe7cf2cd33efdfc8d8 test/results/test0023-aarch64-binary
0c31258687156c27e6792d6bea30b36f79d2626784b928869cb827a28abf6e31 test/results/test0023-amd64-binary
d7b2ad248521de84f3b4d8194ab6b330f3e5fda0043368f57be0d30f9949172b test/results/test0023-armv7l-binary
cf71f340a0721d94c6df56b8681106a6ceb2ea533631ac8b0948f798e2968fd5 test/results/test0023-knight-posix-binary
d90ad541943ce5ee965d4e5d6037b32065cff3fa72b2c6de56456e8cf84fde46 test/results/test0023-x86-binary
65a25f4ee09e7ad4a0c44f6dad7e5a64aa1e62ac98d8f8d58d91a8b3a34ebe00 test/results/test0100-aarch64-binary
4d4d7dc249a4fc1788f4443a7a5feba51392a73dc1b80297a510cbca41afd71e test/results/test0100-amd64-binary
98ebb4ac496ed255d769383d027b0bf358f280b248a0994b30c047d2d5506ec4 test/results/test0100-armv7l-binary
aec08dc839058d42fed2ab9e39984fcdcd478bc07edf03716d8bcb9f8b424884 test/results/test0100-knight-posix-binary
5e1a201a3ee64c34b548e9a62242591508ca1343007c73a4abfb5588230c8b49 test/results/test0100-x86-binary
24199867cd2dea9b68c5df1499e220f08ac97eb09debd3b3621fb80ae588eb71 test/results/test0101-aarch64-binary
a3ea92189ade45911d5f6baf08311e68d9318773a19507a0cc679d6ab8b4508d test/results/test0101-amd64-binary
252237eaaa9940b65aaf82a3667e8c59ccb78222c58e0b66b9a1dff6ee2e72e8 test/results/test0101-armv7l-binary
3d2788dfc102729fd31c53faac9b8cb170ac7e6040298d9abb7a7ca63e00f74d test/results/test0101-knight-posix-binary
1982acbba9f4e5c322e2173c8b9cce18f4a6365b2ff1df2ed9b7ee606eb8b06b test/results/test0101-x86-binary
a44438418b7bf0cff3c34a577a8e505df27087f3ff8d7cf59b4fe7ff9445de0d test/results/test0102-aarch64-binary
ad201d1b8234e3edde7b1bafc69111c825d0c3a66f3c40bf684ac3e3d862aa9b test/results/test0102-amd64-binary
ecd03edac58789b6becf550bef7b978b88dc924eaad44156f80f4b67b8c07c5b test/results/test0102-armv7l-binary
f2f232434a4d0322b07d819f2b1364b3b0a56d8deb7aa84e3c570f6cce8cab91 test/results/test0102-knight-posix-binary
6e3369f9e60cbf06aa08057e2553ebaa5f18b95807be62015e95caf05174b8c6 test/results/test0102-x86-binary
603fd4fe17f8ef9eac12116003941702849b720021da23dc32582ca41192a792 test/results/test0103-aarch64-binary
f2114b5217c12952a85d580ad5914dd679888d93d176ee132ace9e8773916b3b test/results/test0103-amd64-binary
79cbb69a747b07d729db736bc177b52b344106387831a0210ff18fce92edf1cc test/results/test0103-armv7l-binary
17d5aa94e566cecd823da718339dd32e9a7bcdc362d4d19d97f99c229f3cbfc2 test/results/test0103-knight-posix-binary
0f8f90238756cd49b2ab098ede160a7847365c99e20ccf742a3e3fefb65bfbd0 test/results/test0103-knight-posix-binary
87c3c6ac883900334d2caa6695cab42628d2cb554e2216a5d541ec349df458b0 test/results/test0103-x86-binary
eb02e34879a5fc9ca214c76d57f4b0fef08f3218f35b49918e0008b56f763088 test/results/test0104-aarch64-binary
786a9b1c9816861a24a2918f07923db61fb860f4e266f74f995c162994ee310b test/results/test0104-amd64-binary
7e646f2719d6a77052dd7eba7613edf2bf2b5e01ab09e06931ec1009a9c5a8f6 test/results/test0104-armv7l-binary
2eba7a1531aac06e9b5d3fe6c8cb86ac3c79d5ac3e73210e8e4b8c9f8c164993 test/results/test0104-x86-binary
ab5a34d924f711217514a57bac99ca25fa0fca2d215370d14f8da80d328e0369 test/results/test0105-aarch64-binary
0cee078ac74d9ff745764ae1a824586bd38aa7c263c54242bce7cb715ac9006b test/results/test0105-amd64-binary
c0c23a81282875dc16d8c17a4943b371e560eeb3273844107cee2014b8043d6a test/results/test0105-armv7l-binary
554b19d6ff0098f730188874eaed1c6518c186b5cc5ee9d2a4fbc19a69d60c3d test/results/test0105-x86-binary
b99420bf409d1278fb6fe5399ebb0b08ea1f085612538d43f0905999ae8fb51f test/results/test0106-aarch64-binary
08fca71251c58c06a0a6f50e1f3b7998262fe4bba9bb5ba86542ef6a22d66a77 test/results/test0106-amd64-binary
d6862b7f6eaecaaa58250affb502d7cedcbe709a48dc5296f0cbe8ffca9b19d7 test/results/test0106-armv7l-binary
6df8566e7f2376a6358e1127d5cc42654115654b75d08be5748292edad852b1c test/results/test0106-knight-native-binary
e0f0476d9b284bd55ccabc668821e8a9c71746732b4972f007065c1915fef9f9 test/results/test0106-knight-posix-binary
4c3823773941db9316ef4febb41b6f2a9d9f5932403910d357227457ef985b86 test/results/test0106-x86-binary
44445d4e446924da533fe993176c550dbf122614c3c8e042fab665adb6a2e1a8 test/results/test1000-aarch64-binary
4cd622cefa87ab0059ba4c59311e73d2f8e4e1347e6a9846dbb7b855bf9ad7c6 test/results/test1000-amd64-binary
953af010dba14abd9b33763ad6340a59d4085c4a127134708214e0c44d223f0b test/results/test1000-armv7l-binary
b41b20f76f94243a130e05a3977839f1aa9bb2f25a15b296331f3f670c8629de test/results/test1000-knight-posix-binary
811c6460cba62028ded19a075eb14755bb0121a1efad95edf7b042e014dfd825 test/results/test1000-x86-binary
24cc83fba758141c46f7253d7a3cbaa7811acc040e7d17d5282537bfe3fab351 test/results/test0105-aarch64-binary
2fabd191ab6f3f84d0a56b8c7a354ca790ff8c194a4d028a703c044183231e0d test/results/test0105-amd64-binary
b8b1363528ead3cba5150133603028a01fe874b06cd8624fa29460a4ed61598d test/results/test0105-armv7l-binary
c3ae00c557a2525d3d58abb926cb9423725ff50053225c4a352d04ae9cfb02be test/results/test0105-x86-binary
d405c1ed0b6dfb83bde9bfd22628a5884a92fd41aac8e89d89dbb7684528855d test/results/test0106-aarch64-binary
32a2990df4a353f5abf27b4cf9577f9e8b500270ebac0f6aa8c6a78c7f4856cb test/results/test0106-amd64-binary
ecfba440594147303a8c16a144498f4be517ec2f02bc440d0d21075e6a8bc8d3 test/results/test0106-armv7l-binary
99cb6024b886c9dc5ecaf38826dd70a3e823c3a647d20c5ccd2848628e54409f test/results/test0106-knight-native-binary
cad614f909f2b9ac0279b7b508193836bea3a050cecf987448d378f62f6af916 test/results/test0106-knight-posix-binary
c1f58b9b99e1d62814d911a853cce82c2e8220cdadf164c090bd0f3bf4d11caa test/results/test0106-x86-binary
ddd58c4a15ce7b7d21718e831a611fd4202c5d888b7c89fb88e7e803d0bf7f90 test/results/test1000-aarch64-binary
b87bd996f009aade14a14789eeaa50280dafcf149a0aa8ab9d06bb71e5947a62 test/results/test1000-amd64-binary
1188dda93ae8a11522246bca72e0361c166f246d37b91838e69b288e79028f42 test/results/test1000-armv7l-binary
6de24fb63011862f933f9162cc2b6fcdd3be8b5bef6875de505ef67ee4c89b03 test/results/test1000-knight-posix-binary
01538a0c6bfb32ce551df6d3051ee2ac21b01337b0b5e68d5d1d4a1a01e4218d test/results/test1000-x86-binary

View File

@ -32,6 +32,7 @@ int main(int argc, char** argv)
{
FILE* f = fopen(argv[1], "r");
write_string(f);
fclose(f);
}
return 0;
}

View File

@ -1 +1 @@
ebbd59a6b0fff8c0d879e26ca383640066918d2e7d55da8f47a88e0cce2329f4 test/test0015/proof
3bdda3a742911286d1e33fd024a3516b800c3f6a1c055f6e32bf552496fbcd90 test/test0015/proof

View File

@ -41,5 +41,9 @@ int main(int argc, char** argv)
f = fopen(argv[1], "w");
}
write_string(f);
if (f != stdout)
{
fclose(f);
}
return 0;
}

View File

@ -104,5 +104,14 @@ int main(int argc, char** argv)
}
sum_file(in, out);
if (in != stdin)
{
fclose(in);
}
if (out != stdout)
{
fclose(out);
}
return 0;
}

View File

@ -62,5 +62,7 @@ int main(int argc, char** argv)
c = fgetc(f);
fputc(c, stdout);
fclose(f);
return 0;
}

View File

@ -242,5 +242,9 @@ int main(int argc, char **argv)
output_debug(jump_table, FALSE);
file_print("\n:ELF_end\n", output);
if (output != stdout) {
fclose(output);
}
return EXIT_SUCCESS;
}

View File

@ -659,6 +659,11 @@ int main(int argc, char **argv)
ip = Base_Address;
second_pass(input);
/* Close output file */
if (output != stdout) {
fclose(output);
}
/* Set file as executable */
if(exec_enable)
{

View File

@ -824,6 +824,9 @@ int main(int argc, char **argv)
}
token_list = Tokenize_Line(token_list, filename);
fclose(source_file);
option_index = option_index + 2;
}
else if(match(argv[option_index], "-o") || match(argv[option_index], "--output"))
@ -869,5 +872,10 @@ int main(int argc, char **argv)
preserve_other(blob_list);
print_hex(token_list);
if (destination_file != stdout)
{
fclose(destination_file);
}
return EXIT_SUCCESS;
}

View File

@ -158,5 +158,14 @@ int main(int argc, char **argv)
Reached_EOF = REPL(stdin, stdout);
}
fclose(file_output);
if (console_output != stdout)
{
fclose(console_output);
}
while(NULL != essential)
{
fclose(essential->file);
essential = essential -> next;
}
return 0;
}