{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":784306548,"defaultBranch":"main","name":"STM8-DCE","ownerLogin":"CTXz","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-04-09T15:36:01.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/12089409?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719222180.0","currentOid":""},"activityList":{"items":[{"before":"8db03a6c7f331030162b241f5e88d8163b13ded4","after":"edc4e75d0ba46ba881352b5a183e181d84d2b260","ref":"refs/heads/v1.1.2wip","pushedAt":"2024-06-24T09:46:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Added test for recursive function\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Added test for recursive function"}},{"before":null,"after":"8db03a6c7f331030162b241f5e88d8163b13ded4","ref":"refs/heads/v1.1.2wip","pushedAt":"2024-06-24T09:43:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Only keep functions referenced by fptr if fptr is used\n\nUp until this commit, any function referenced by a fptr would be unconditionally excluded\nfrom DCE. Now we're actually checking if the function pointer is even used. If it isn't, don't\nbother excluding the referenced function!\n\nTo achieve this, the tool now treats calls and function pointer assignments equally. Instead of\nresolve_calls resolving into calls[] and resolve_fptrs[] resolving into fptrs[], both now resolve\ninto referenced_functions[]. traverse_calls() has also been renamed to traverse_functions() since\nit isn't restricted to calls anymore.\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Only keep functions referenced by fptr if fptr is used"}},{"before":"5bef02406bd2bf57d9506f0a1751d3b0334ef6b6","after":null,"ref":"refs/tags/v1.1.1","pushedAt":"2024-06-23T14:34:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"}},{"before":"914e9f27bcf9d46d076ed1d0a0bc34619344f2b2","after":"5bef02406bd2bf57d9506f0a1751d3b0334ef6b6","ref":"refs/heads/main","pushedAt":"2024-06-23T10:15:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"PyPi: Updated to v1.1.1\n\nThis version change only serves to update the PyPi package.","shortMessageHtmlLink":"PyPi: Updated to v1.1.1"}},{"before":"7f3c2a116afb84aa670b4bfc14e4907326cdeef4","after":"914e9f27bcf9d46d076ed1d0a0bc34619344f2b2","ref":"refs/heads/main","pushedAt":"2024-06-23T10:11:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"README: Use pip instead of python3 -m pip","shortMessageHtmlLink":"README: Use pip instead of python3 -m pip"}},{"before":"bfd228ceb154faff747c05fc27dfa6b434ffa2f7","after":"7f3c2a116afb84aa670b4bfc14e4907326cdeef4","ref":"refs/heads/main","pushedAt":"2024-06-23T01:23:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Docs: Updated\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Docs: Updated"}},{"before":"47e9b4510eb0e31eac7f500446ae414e37ee14be","after":"bfd228ceb154faff747c05fc27dfa6b434ffa2f7","ref":"refs/heads/main","pushedAt":"2024-06-23T00:59:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"README: stm8dce is now available on PyPi\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"README: stm8dce is now available on PyPi"}},{"before":"a2123a3863cdf38fd9b7d98bd01cdd8f0eadbbe9","after":"47e9b4510eb0e31eac7f500446ae414e37ee14be","ref":"refs/heads/main","pushedAt":"2024-06-22T23:31:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"PyPi: Fixed wrong hatch install\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"PyPi: Fixed wrong hatch install"}},{"before":"86ec2b288b842dd48c02539ac0cfab7d3397a283","after":"a2123a3863cdf38fd9b7d98bd01cdd8f0eadbbe9","ref":"refs/heads/main","pushedAt":"2024-06-22T23:27:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"PyPi: Added publish.yml\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"PyPi: Added publish.yml"}},{"before":"d48c1cae6b5865311637ad32883fa56a14a71d61","after":"86ec2b288b842dd48c02539ac0cfab7d3397a283","ref":"refs/heads/main","pushedAt":"2024-06-22T23:15:36.000Z","pushType":"push","commitsCount":25,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"0b4877e997d98baa0d3fc4d0fe933d656ac7dbb1","after":"86ec2b288b842dd48c02539ac0cfab7d3397a283","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:13:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"37c0c8254a9acec0bf68a1705a790417bdb373fc","after":"0b4877e997d98baa0d3fc4d0fe933d656ac7dbb1","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:13:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"3eabd686339c7e7743dd0b77302866c90ab9b97a","after":"37c0c8254a9acec0bf68a1705a790417bdb373fc","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:11:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"7e3270c49128132afea545346b371b84c8cd5506","after":"3eabd686339c7e7743dd0b77302866c90ab9b97a","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:11:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"9ae21c0c87c65c66ca07ccd525615a3d49da0bcf","after":"7e3270c49128132afea545346b371b84c8cd5506","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:09:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"cb98454798437f747394f3129891640ea7b8be2c","after":"9ae21c0c87c65c66ca07ccd525615a3d49da0bcf","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:09:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"cb3d5edc7dd10cba83366558f85a7189a56563c6","after":"cb98454798437f747394f3129891640ea7b8be2c","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:06:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"a8cb320291d3a84d8aa8821788a8372debf73c5f","after":"cb3d5edc7dd10cba83366558f85a7189a56563c6","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:05:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"5a86d2c0fc7ac7ef084648a01b47280d45f1363e","after":"a8cb320291d3a84d8aa8821788a8372debf73c5f","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:03:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Renamed test/ to tests/\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Renamed test/ to tests/"}},{"before":"55469f10487c0691b7bee0335acbcd12b12ab9af","after":"5a86d2c0fc7ac7ef084648a01b47280d45f1363e","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T23:01:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Tests: Added test project + Added README for tests\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Tests: Added test project + Added README for tests"}},{"before":"28bfa2e808a33f0dc03df12a3752be2b400f3a55","after":"55469f10487c0691b7bee0335acbcd12b12ab9af","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T00:27:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Added docker image to test through SDCC v3.8 - v4.4\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Added docker image to test through SDCC v3.8 - v4.4"}},{"before":"a75e963146a6199b1fdeff86e359be9ce32d4225","after":"28bfa2e808a33f0dc03df12a3752be2b400f3a55","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-22T00:26:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Added docker image to test through SDCC v3.8 - v4.4\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Added docker image to test through SDCC v3.8 - v4.4"}},{"before":"a01c8cdaf361d0eb858abe7df2876a2d839d956d","after":"a75e963146a6199b1fdeff86e359be9ce32d4225","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-21T18:16:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Test: Handle SDCC commands in test file\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Test: Handle SDCC commands in test file"}},{"before":"13629b11558fff629113a5876ced33d2debb0e67","after":"a01c8cdaf361d0eb858abe7df2876a2d839d956d","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-21T01:57:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Test: Added sdcc linking test where possible\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Test: Added sdcc linking test where possible"}},{"before":"52575fa0993b312c3c858725122bb04d423e8141","after":"13629b11558fff629113a5876ced33d2debb0e67","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-20T19:30:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Test: Do not output run() stdout\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Test: Do not output run() stdout"}},{"before":"db905cb17ee63c2964bfc30e4f37186c7407c988","after":"52575fa0993b312c3c858725122bb04d423e8141","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-20T17:58:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"test: Cleaned up code\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"test: Cleaned up code"}},{"before":"8c2a7dd72773ba1c29f03b2ceb115147af7dfdf3","after":"db905cb17ee63c2964bfc30e4f37186c7407c988","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-20T01:04:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Added crude unittest\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Added crude unittest"}},{"before":"0fdaf9f5e414564ef564e4710bb27e37af40e79f","after":"8c2a7dd72773ba1c29f03b2ceb115147af7dfdf3","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-17T21:16:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Do not optimize functions/constants referenced in INITIALIZER section\n\nIn circumstances where global pointers were defined to reference an extern constant or function, the extern constants and functions would still be mistakenly optimized out.\n\nHere's an example:\n\ntest.c:\n```c\nconst uint8_t test[] = {0xA, 0xB, 0xC, ...};\n\nvoid testf() {\n\t__asm__(\"nop\");\n}\n```\n\nmain.c:\n```c\nextern const uint8_t test[];\nuint8_t *testptr = test;\nvoid testf();\nvoid (*testfptr)(void) = testf;\n\nvoid main() {\n...\n```\n\nThis would result in the following linker errors:\n```\n?ASlink-Warning-Undefined Global '_testf' referenced by module 'main'\n\n?ASlink-Warning-Undefined Global '_test' referenced by module 'main'\n```\n\nThis is because SDCC places pointers to `_test` and `_testf` in the INITIALIZER section, which then get loaded to `_testptr` and `_testfptr` in the GSINIT section.\n\nUp until this commit, stm8dce did not consider the INITIALIZER section, hence, it would mistakenly optimize the referenced constants and functions out.\n\nNow, stm8dce parses through the INITIALIZER section and resolves all references to symbols. These can resolve into:\n\n- functions\n- constants\n- external symbols (i.e., symbols in rel/lib files)\n\nUnfortunately, symbols in the INITIALIZER section will be excluded from DCE unconditionally. This is because they're loaded using offsets in GSINIT, instead of being addressed directly. This makes it harder to analyze.\n\nPerhaps in a future commit, the tool will also be able to analyze if these constants and functions are actually being used.\n\nThis commit should also fix this issue: https://github.com/CTXz/STM8-DCE/issues/4\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Do not optimize functions/constants referenced in INITIALIZER section"}},{"before":"e797bcaae7ab36cfb7de92cf6df0139411e3a72b","after":"0fdaf9f5e414564ef564e4710bb27e37af40e79f","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-17T18:47:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Do not optimize functions/constants referenced in INITIALIZER section\n\nIn circumstances where global pointers would be defined to reference an extern constant or function, the extern constants and functions would still be mistakenly optimized out.\n\nHere's an example:\n\ntest.c:\n```c\nconst uint8_t test[] = {0xA, 0xB, 0xC, ...};\n\nvoid testf() {\n\t__asm__(\"nop\");\n}\n```\n\nmain.c\n```c\nextern const uint8_t test[];\nuint8_t *testptr = test;\nvoid testf();\nvoid (*testfptr)(void) = testf\n\nvoid main() {\n...\n```\n\nThis would result in the following linker errors:\n```\n?ASlink-Warning-Undefined Global '_testf' referenced by module 'main'\n\n?ASlink-Warning-Undefined Global '_test' referenced by module 'main\n```\n\nThis is because SDCC places pointers to `_test` and `_testf` in the INITIALIZER section which then get loaded\nto `_testptr` and `_testfptr` in GSINIT section.\n\nUp until this commit, stm8dce did not consider the INITIALIZER section, hence, it'd mistakenly optimize the referenced constants and functions out.\n\nNow, stm8dce parses through the INITIALIZER section and resolves all references to symbols. These can resolve into:\n\n- functions\n- constants\n- external symbols (i.e. symbols in rel/lib files)\n\nUnfortunately, symbols in hte INITIALIZER section will be excluded from DCE unconditionally. This is because they're loaded using offsets in\nGSINIT, instead of being addressed directly, which makes it harder to analyze.\n\nPerhaps in a future commit the tool will also be able to analyze if these constants and functions are acctually being used.\n\nThis commit should also fix this issue: https://github.com/CTXz/STM8-DCE/issues/4\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Do not optimize functions/constants referenced in INITIALIZER section"}},{"before":"aeec27d505de5d5d6a604d67465499bc606adc7f","after":"e797bcaae7ab36cfb7de92cf6df0139411e3a72b","ref":"refs/heads/v1.1.0wip","pushedAt":"2024-06-17T18:45:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CTXz","name":"Patrick Pedersen","path":"/CTXz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12089409?s=80&v=4"},"commit":{"message":"Do not optimize functions/constants referenced in INITIALIZER section\n\nIn circumstances where global pointers would be defined to reference an extern constant or function, the extern constants and functions would still be mistakenly optimized out.\n\nHere's an example:\n\ntest.c:\n```c\nconst uint8_t test[] = {0xA, 0xB, 0xC, ...};\n\nvoid testf() {\n\t__asm__(\"nop\");\n}\n```\n\nmain.c\n```c\nextern const uint8_t test[];\nuint8_t *testptr = test;\nvoid testf();\nvoid (*testfptr)(void) = testf\n\nvoid main() {\n...\n```\n\nThis would result in the following linker errors:\n```\n?ASlink-Warning-Undefined Global '_testf' referenced by module 'main'\n\n?ASlink-Warning-Undefined Global '_test' referenced by module 'main\n```\n\nThis is because SDCC places pointers to `_test` and `_testf` in the INITIALIZER section which then get loaded\nto `_testptr` and `_testfptr` in GSINIT section.\n\nUp until this commit, stm8dce did not consider the INITIALIZER section, hence, it'd mistakenly optimize the referenced constants and functions out.\n\nNow, stm8dce parses through the INITIALIZER section and resolves all references to symbols. These can resolve into:\n\n- functions\n- constants\n- external symbols (i.e. symbols in rel/lib files)\n\nUnfortunately, symbols in hte INITIALIZER section will be excluded from DCE unconditionally. This is because they're loaded using offsets in\nGSINIT, instead of being addressed directly, which makes it harder to analyze.\n\nPerhaps in a future commit the tool will also be able to analyze if these constants and functions are acctually being used.\n\nSigned-off-by: Patrick Pedersen ","shortMessageHtmlLink":"Do not optimize functions/constants referenced in INITIALIZER section"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbVjJCAA","startCursor":null,"endCursor":null}},"title":"Activity ยท CTXz/STM8-DCE"}