{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,18]],"date-time":"2026-07-18T16:31:06Z","timestamp":1784392266554,"version":"3.55.0"},"publisher-location":"New York, NY, USA","reference-count":76,"publisher":"ACM","license":[{"start":{"date-parts":[[2024,9,11]],"date-time":"2024-09-11T00:00:00Z","timestamp":1726012800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2024,9,11]]},"DOI":"10.1145\/3650212.3680362","type":"proceedings-article","created":{"date-parts":[[2024,9,11]],"date-time":"2024-09-11T11:44:25Z","timestamp":1726055065000},"page":"1312-1324","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":10,"title":["Towards Understanding the Bugs in Solidity Compiler"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-7411-9288","authenticated-orcid":false,"given":"Haoyang","family":"Ma","sequence":"first","affiliation":[{"name":"Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8039-0528","authenticated-orcid":false,"given":"Wuqi","family":"Zhang","sequence":"additional","affiliation":[{"name":"Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6128-2123","authenticated-orcid":false,"given":"Qingchao","family":"Shen","sequence":"additional","affiliation":[{"name":"Tianjin University, Tianjin, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1644-2965","authenticated-orcid":false,"given":"Yongqiang","family":"Tian","sequence":"additional","affiliation":[{"name":"Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3056-9962","authenticated-orcid":false,"given":"Junjie","family":"Chen","sequence":"additional","affiliation":[{"name":"Tianjin University, Tianjin, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3508-7172","authenticated-orcid":false,"given":"Shing-Chi","family":"Cheung","sequence":"additional","affiliation":[{"name":"Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2024,9,11]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"2015. Extra bytes returned on revert(\u200b). https:\/\/github.com\/ethereum\/solidity\/issues\/10170"},{"key":"e_1_3_2_1_2_1","unstructured":"2015. Overwrites when assigning to bytes elements. https:\/\/github.com\/ethereum\/solidity\/issues\/212"},{"key":"e_1_3_2_1_3_1","unstructured":"2016. Security Alert: Variables can be overwritten in storage. https:\/\/soliditylang.org\/blog\/2016\/11\/01\/security-alert-solidity-variables-can-overwritten-storage\/"},{"key":"e_1_3_2_1_4_1","unstructured":"2018. Fuzzing the Solidity Compiler. https:\/\/bshastry.github.io\/2018\/10\/20\/Fuzzing-Solidity-Compiler.html"},{"key":"e_1_3_2_1_5_1","unstructured":"2018. Internal functions only referenced in the constructor are still included in the runtime code. https:\/\/github.com\/ethereum\/solidity\/issues\/3271"},{"key":"e_1_3_2_1_6_1","unstructured":"2019. The indexed modifier can be specified multiple times for event arguments. https:\/\/github.com\/ethereum\/solidity\/issues\/13681"},{"key":"e_1_3_2_1_7_1","unstructured":"2019. u256 overflow in logical shift optimization rule leads to incorrect computation. https:\/\/github.com\/ethereum\/solidity\/issues\/6246"},{"key":"e_1_3_2_1_8_1","unstructured":"2020. Breaking the Solidity Compiler with a Fuzzer. https:\/\/blog.trailofbits.com\/2020\/06\/05\/breaking-the-solidity-compiler-with-a-fuzzer\/"},{"key":"e_1_3_2_1_9_1","unstructured":"2020. ICE because of signed exponent. https:\/\/github.com\/ethereum\/solidity\/issues\/9548"},{"key":"e_1_3_2_1_10_1","unstructured":"2020. ICE in virtual modifier. https:\/\/github.com\/ethereum\/solidity\/issues\/9745"},{"key":"e_1_3_2_1_11_1","unstructured":"2020. Solidity Dynamic Array Cleanup Bug. https:\/\/soliditylang.org\/blog\/2020\/10\/07\/solidity-dynamic-array-cleanup-bug\/"},{"key":"e_1_3_2_1_12_1","unstructured":"2021. 0.7.4 Compiler Warning: unnamed return variable. https:\/\/github.com\/ethereum\/solidity\/issues\/10084"},{"key":"e_1_3_2_1_13_1","unstructured":"2021. Experimental Results of Fuzzol. https:\/\/github.com\/Fuzzol-Anonymous\/Results"},{"key":"e_1_3_2_1_14_1","unstructured":"2021. ICE in StructType::isDynamicallyEncoded() when a function has a calldata struct argument with an internal type inside. https:\/\/github.com\/ethereum\/solidity\/issues\/11610"},{"key":"e_1_3_2_1_15_1","unstructured":"2021. List of Known Bugs. https:\/\/docs.soliditylang.org\/en\/latest\/bugs.html"},{"key":"e_1_3_2_1_16_1","unstructured":"2021. Solidity Optimizer Keccak Caching Bug. https:\/\/soliditylang.org\/blog\/2021\/03\/23\/keccak-optimizer-bug\/"},{"key":"e_1_3_2_1_17_1","unstructured":"2022. bad_cast when passing a tuple returned from a function to abi.encodeCall(). https:\/\/github.com\/ethereum\/solidity\/issues\/13101"},{"key":"e_1_3_2_1_18_1","unstructured":"2022. Early return in constructor forbidden if child contract has immutable fields. https:\/\/github.com\/ethereum\/solidity\/issues\/12379"},{"key":"e_1_3_2_1_19_1","unstructured":"2022. ICE when copying storage structs to memory arrays via IR. https:\/\/github.com\/ethereum\/solidity\/issues\/12558"},{"key":"e_1_3_2_1_20_1","unstructured":"2022. Overridden modifiers are ignored in control flow analysis resulting in missing uninitialized storage error. https:\/\/github.com\/ethereum\/solidity\/issues\/11483"},{"key":"e_1_3_2_1_21_1","unstructured":"2022. Storage Write Removal Bug On Conditional Early Termination. https:\/\/soliditylang.org\/blog\/2022\/09\/08\/storage-write-removal-before-conditional-termination\/"},{"key":"e_1_3_2_1_22_1","unstructured":"2023. The afl-fuzz approach. https:\/\/aflplus.plus\/docs\/afl-fuzz_approach\/"},{"key":"e_1_3_2_1_23_1","unstructured":"2023. American Fuzzy Lop. https:\/\/lcamtuf.coredump.cx\/afl\/"},{"key":"e_1_3_2_1_24_1","unstructured":"2023. Decompose source code into templates and fragments for any language. https:\/\/github.com\/comby-tools\/comby-decomposer"},{"key":"e_1_3_2_1_25_1","unstructured":"2023. DefiLlama. https:\/\/defillama.com\/"},{"key":"e_1_3_2_1_26_1","unstructured":"2023. Library methods called only during contract construction are included in the runtime bytecode. https:\/\/github.com\/ethereum\/solidity\/issues\/13680"},{"key":"e_1_3_2_1_27_1","unstructured":"2023. Private library functions can be attached and used outside of the library. https:\/\/github.com\/ethereum\/solidity\/issues\/13764"},{"key":"e_1_3_2_1_28_1","unstructured":"2023. SMTChecker does not handle increment expression in if statement condition correctly. https:\/\/github.com\/ethereum\/solidity\/issues\/14211"},{"key":"e_1_3_2_1_29_1","unstructured":"2023. SMTChecker: Malformed SMT-LIB2 script generated. https:\/\/github.com\/ethereum\/solidity\/issues\/14375"},{"key":"e_1_3_2_1_30_1","unstructured":"2023. Solidity and Smart Contracts: A quick introduction. https:\/\/www.pluralsight.com\/blog\/software-development\/what-is-solidity-smart-contracts"},{"key":"e_1_3_2_1_31_1","unstructured":"2023. Solidity Compiler\u2019s Bug List. https:\/\/github.com\/ethereum\/solidity\/issues?q=is%3Aissue+label%3A%22bug+%3Abug%3A%22+is%3Aclosed+created%3A%3C%3D2023-10-16"},{"key":"e_1_3_2_1_32_1","unstructured":"2023. Underflow not reported. https:\/\/github.com\/ethereum\/solidity\/issues\/14111"},{"key":"e_1_3_2_1_33_1","unstructured":"2023. Vyper Language Zero Day Exploits. https:\/\/neptunemutual.com\/blog\/vyper-language-zero-day-exploits\/"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485500"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523427"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3587155","article-title":"Toward understanding deep learning framework bugs","volume":"32","author":"Chen Junjie","year":"2023","unstructured":"Junjie Chen, Yihua Liang, Qingchao Shen, Jiajun Jiang, and Shuochuan Li. 2023. Toward understanding deep learning framework bugs. ACM Transactions on Software Engineering and Methodology, 32, 6 (2023), 1\u201331.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3416570"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.5555\/3155562.3155627"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2012.6227142"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISSRE52982.2021.00030"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598130"},{"key":"e_1_3_2_1_42_1","volume-title":"ETHBMC: A Bounded Model Checker for Smart Contracts. In USENIX Security Symposium. https:\/\/api.semanticscholar.org\/CorpusID:215805835","author":"Frank Joel Cameron","year":"2020","unstructured":"Joel Cameron Frank, Cornelius Aschermann, and Thorsten Holz. 2020. ETHBMC: A Bounded Model Checker for Smart Contracts. In USENIX Security Symposium. https:\/\/api.semanticscholar.org\/CorpusID:215805835"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380397"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3497776.3517765"},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2019.8714912"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/2362793.2362831"},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380424"},{"key":"e_1_3_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338955"},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-59410-7_40"},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2018.23082"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594334"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353535.1346323"},{"key":"e_1_3_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598053"},{"key":"e_1_3_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-51479-1_17"},{"key":"e_1_3_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460319.3464837"},{"key":"e_1_3_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.799955"},{"key":"e_1_3_2_1_57_1","unstructured":"Kostya Serebryany Maxim Lifantsev Konstantin Shtoyk Doug Kwan and Peter Hochschild. 2021. SiliFuzz: Fuzzing CPUs by proxy. arxiv:2110.11519."},{"key":"e_1_3_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468591"},{"key":"e_1_3_2_1_59_1","volume-title":"Proceedings of the 40th International Conference on Software Engineering.","author":"Shen Qingchao","year":"2025","unstructured":"Qingchao Shen, Yongqiang Tian, Haoyang Ma, Junjie Chen, Lili Huang, Ruifeng Fu, Shing-Chi Cheung, and Zan Wang. 2025. A Tale of Two DL Cities:When Library Tests Meet Compiler. In Proceedings of the 40th International Conference on Software Engineering. to appear."},{"key":"e_1_3_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931074"},{"key":"e_1_3_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180236"},{"key":"e_1_3_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.24963\/IJCAI.2023"},{"key":"e_1_3_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/3617172"},{"key":"e_1_3_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1109\/FUZZY.2010.5584447"},{"key":"e_1_3_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2017.59"},{"key":"e_1_3_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468625"},{"key":"e_1_3_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/3551349.3559561"},{"key":"e_1_3_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/3575693.3575740"},{"key":"e_1_3_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598138"},{"key":"e_1_3_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1145\/3586049"},{"key":"e_1_3_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993532"},{"key":"e_1_3_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.988498"},{"key":"e_1_3_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/3650212.3652126"},{"key":"e_1_3_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/3611643.3616275"},{"key":"e_1_3_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213866"},{"key":"e_1_3_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2020.110884"}],"event":{"name":"ISSTA '24: 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis","location":"Vienna Austria","acronym":"ISSTA '24","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","AITO"]},"container-title":["Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3650212.3680362","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3650212.3680362","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T22:50:08Z","timestamp":1750287008000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3650212.3680362"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,9,11]]},"references-count":76,"alternative-id":["10.1145\/3650212.3680362","10.1145\/3650212"],"URL":"https:\/\/doi.org\/10.1145\/3650212.3680362","relation":{},"subject":[],"published":{"date-parts":[[2024,9,11]]},"assertion":[{"value":"2024-09-11","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}