{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,11]],"date-time":"2026-07-11T05:53:12Z","timestamp":1783749192907,"version":"3.55.0"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2016,2,25]],"date-time":"2016-02-25T00:00:00Z","timestamp":1456358400000},"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":["Commun. ACM"],"published-print":{"date-parts":[[2016,2,25]]},"DOI":"10.1145\/2885256","type":"journal-article","created":{"date-parts":[[2016,2,26]],"date-time":"2016-02-26T14:29:03Z","timestamp":1456496943000},"page":"99-106","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["A differential approach to undefined behavior detection"],"prefix":"10.1145","volume":"59","author":[{"given":"Xi","family":"Wang","sequence":"first","affiliation":[{"name":"University of Washington, Seattle, WA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Nickolai","family":"Zeldovich","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, Cambridge, MA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"M. Frans","family":"Kaashoek","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, Cambridge, MA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Armando","family":"Solar-Lezama","sequence":"additional","affiliation":[{"name":"Massachusetts Institute of Technology, Cambridge, MA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2016,2,25]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1646353.1646374"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462188"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065042"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00768-2_16"},{"key":"e_1_2_1_5_1","unstructured":"Bug 30475 -- &lt;code&gt;assert(int+100 &gt; int)&lt;\/code&gt; optimized away 2007. http:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=30475.  Bug 30475 -- &lt;code&gt;assert(int+100 &gt; int)&lt;\/code&gt; optimized away 2007. http:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=30475."},{"key":"e_1_2_1_6_1","volume-title":"fixpoint divide exception at &lt;code&gt;ext4_fill_super,&lt;\/code&gt","author":"Bug","year":"2009","unstructured":"Bug 14287 -- ext4 : fixpoint divide exception at &lt;code&gt;ext4_fill_super,&lt;\/code&gt ; 2009 . https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=14287. Bug 14287 -- ext4: fixpoint divide exception at &lt;code&gt;ext4_fill_super,&lt;\/code&gt; 2009. https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=14287."},{"key":"e_1_2_1_7_1","unstructured":"Bug 49820 -- explicit check for integer negative after &lt;code&gt;abs&lt;\/code&gt; optimized away 2011. http:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=49820.  Bug 49820 -- explicit check for integer negative after &lt;code&gt;abs&lt;\/code&gt; optimized away 2011. http:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=49820."},{"key":"e_1_2_1_8_1","unstructured":"Bug 53265 -- warn when undefined behavior implies smaller iteration count 2013. http:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=53265.  Bug 53265 -- warn when undefined behavior implies smaller iteration count 2013. http:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=53265."},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI)","author":"Cadar C.","year":"2008","unstructured":"Cadar , C. , Dunbar , D. , Engler , D. KLEE : Unassisted and automatic generation of high-coverage tests for complex systems programs . In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI) ( San Diego, CA , Dec. 2008 ). Cadar, C., Dunbar, D., Engler, D. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI) (San Diego, CA, Dec. 2008)."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2009.22"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103799.2103805"},{"key":"e_1_2_1_12_1","volume-title":"Controlling Code Generation","author":"Clang Compiler User's Manual","year":"2014","unstructured":"Clang Compiler User's Manual : Controlling Code Generation , 2014 . http:\/\/clang.llvm.org\/docs\/UsersManual.html#controlling-code-generation. Clang Compiler User's Manual: Controlling Code Generation, 2014. http:\/\/clang.llvm.org\/docs\/UsersManual.html#controlling-code-generation."},{"key":"e_1_2_1_13_1","volume-title":"Fun with NULL pointers, part","author":"Corbet J.","year":"2009","unstructured":"Corbet , J. Fun with NULL pointers, part 1, July 2009 . http:\/\/lwn.net\/Articles\/342330\/. Corbet, J. Fun with NULL pointers, part 1, July 2009. http:\/\/lwn.net\/Articles\/342330\/."},{"key":"e_1_2_1_14_1","volume-title":"Aug.","author":"Cuoq P.","year":"2014","unstructured":"Cuoq , P. , Flatt , M. , Regehr , J. Proposal for a friendly dialect of C , Aug. 2014 . http:\/\/blog.regehr.org\/archives\/1180. Cuoq, P., Flatt, M., Regehr, J. Proposal for a friendly dialect of C, Aug. 2014. http:\/\/blog.regehr.org\/archives\/1180."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.5555\/2337223.2337313"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250784"},{"key":"e_1_2_1_17_1","first-page":"2008","volume-title":"US-CERT","author":"Dougherty C.R.","year":"2008","unstructured":"Dougherty , C.R. , Seacord , R.C. C compilers may silently discard some wraparound checks. Vulnerability note VU#162289 , US-CERT , 2008 . http:\/\/www.kb.cert.org\/vuls\/id\/162289, original version: http:\/\/www.isspcs.org\/render.html?it=9100, also known as CVE- 2008 - 1685 . Dougherty, C.R., Seacord, R.C. C compilers may silently discard some wraparound checks. Vulnerability note VU#162289, US-CERT, 2008. http:\/\/www.kb.cert.org\/vuls\/id\/162289, original version: http:\/\/www.isspcs.org\/render.html?it=9100, also known as CVE-2008-1685."},{"key":"e_1_2_1_18_1","volume-title":"Defining the Undefinedness of C. Technical report","author":"Ellison C.","year":"2012","unstructured":"Ellison , C. , Ro\u015fu , G. Defining the Undefinedness of C. Technical report , University of Illinois , Apr. 2012 . http:\/\/hdl.handle.net\/2142\/30780. Ellison, C., Ro\u015fu, G. Defining the Undefinedness of C. Technical report, University of Illinois, Apr. 2012. http:\/\/hdl.handle.net\/2142\/30780."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103719"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502041"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-05089-3_22"},{"key":"e_1_2_1_22_1","volume-title":"A--Z","author":"Intel","year":"2013","unstructured":"Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 : Instruction Set Reference , A--Z , Jan. 2013 . Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2: Instruction Set Reference, A--Z, Jan. 2013."},{"key":"e_1_2_1_23_1","volume-title":"Dec.","year":"2011","unstructured":"ISO\/IEC 9899:2011 , Programming languages -- C , Dec. 2011 . ISO\/IEC 9899:2011, Programming languages -- C, Dec. 2011."},{"key":"e_1_2_1_24_1","volume-title":"Juniper Networks","author":"Jack B.","year":"2007","unstructured":"Jack , B. Vector rewrite attack: Exploitable NULL pointer vulnerabilities on ARM and XScale architectures. White paper , Juniper Networks , May 2007 . Jack, B. Vector rewrite attack: Exploitable NULL pointer vulnerabilities on ARM and XScale architectures. White paper, Juniper Networks, May 2007."},{"key":"e_1_2_1_25_1","volume-title":"ISO\/IEC","author":"Krebbers R.","year":"2012","unstructured":"Krebbers , R. , Wiedijk , F. Subtleties of the ANSI\/ISO C standard. Document N1639 , ISO\/IEC , Sept. 2012 . Krebbers, R., Wiedijk, F. Subtleties of the ANSI\/ISO C standard. Document N1639, ISO\/IEC, Sept. 2012."},{"key":"e_1_2_1_26_1","volume-title":"Anyone for adding &lt;code&gt;--fwrapv&lt;\/code&gt","author":"Lane T.","year":"2005","unstructured":"Lane , T. Anyone for adding &lt;code&gt;--fwrapv&lt;\/code&gt ; to our standard CFLAGS ? Dec. 2005 . http:\/\/www.postgresql.org\/message-id\/1689.1134422394@sss.pgh.pa.us. Lane, T. Anyone for adding &lt;code&gt;--fwrapv&lt;\/code&gt; to our standard CFLAGS? Dec. 2005. http:\/\/www.postgresql.org\/message-id\/1689.1134422394@sss.pgh.pa.us."},{"key":"e_1_2_1_27_1","volume-title":"May","author":"Lattner C.","year":"2011","unstructured":"Lattner , C. What every C programmer should know about undefined behavior , May 2011 . http:\/\/blog.llvm.org\/2011\/05\/what-every-c-programmer-should-know.html. Lattner, C. What every C programmer should know about undefined behavior, May 2011. http:\/\/blog.llvm.org\/2011\/05\/what-every-c-programmer-should-know.html."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/977395.977673"},{"key":"e_1_2_1_29_1","volume-title":"Feb.","author":"Miller W.M.","year":"2012","unstructured":"Miller , W.M. C++ standard core language defect reports and accepted issues , issue 1457: Undefined behavior in left-shift , Feb. 2012 . http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/cwg_defects.html#1457. Miller, W.M. C++ standard core language defect reports and accepted issues, issue 1457: Undefined behavior in left-shift, Feb. 2012. http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/cwg_defects.html#1457."},{"key":"e_1_2_1_30_1","volume-title":"Jul.","author":"Power ISA","year":"2010","unstructured":"Power ISA Version 2.06 Revision B , Book I: Power ISA User Instruction Set Architecture , Jul. 2010 . Power ISA Version 2.06 Revision B, Book I: Power ISA User Instruction Set Architecture, Jul. 2010."},{"key":"e_1_2_1_31_1","unstructured":"Ranise S. Tinelli C. Barrett C. QF_BV logic Jun. 2013. http:\/\/smtlib.cs.uiowa.edu\/logics\/QF_BV.smt2.  Ranise S. Tinelli C. Barrett C. QF_BV logic Jun. 2013. http:\/\/smtlib.cs.uiowa.edu\/logics\/QF_BV.smt2."},{"key":"e_1_2_1_32_1","unstructured":"Rationale for International Standard -- Programming Languages -- C Apr. 2003. Rationale for International Standard -- Programming Languages -- C Apr. 2003."},{"key":"e_1_2_1_33_1","volume-title":"Jul.","author":"Regehr J.","year":"2010","unstructured":"Regehr , J. A guide to undefined behavior in C and C++ , Jul. 2010 . http:\/\/blog.regehr.org\/archives\/213. Regehr, J. A guide to undefined behavior in C and C++, Jul. 2010. http:\/\/blog.regehr.org\/archives\/213."},{"key":"e_1_2_1_34_1","volume-title":"Jul.","author":"Regehr J.","year":"2012","unstructured":"Regehr , J. Undefined behavior consequences contest winners , Jul. 2012 . http:\/\/blog.regehr.org\/archives\/767. Regehr, J. Undefined behavior consequences contest winners, Jul. 2012. http:\/\/blog.regehr.org\/archives\/767."},{"key":"e_1_2_1_35_1","volume-title":"Feb.","author":"Seacord R.C.","year":"2010","unstructured":"Seacord , R.C. Dangerous optimizations and the loss of causality , Feb. 2010 . https:\/\/www.securecoding.cert.org\/confluence\/download\/attachments\/40402999\/Dangerous+Optimizations.pdf. Seacord, R.C. Dangerous optimizations and the loss of causality, Feb. 2010. https:\/\/www.securecoding.cert.org\/confluence\/download\/attachments\/40402999\/Dangerous+Optimizations.pdf."},{"key":"e_1_2_1_36_1","volume-title":"the GCC Developer Community. Using the GNU Compiler Collection for GCC 4.8.0","author":"Stallman R.M.","year":"2013","unstructured":"Stallman , R.M. , the GCC Developer Community. Using the GNU Compiler Collection for GCC 4.8.0 . GNU Press , Free Software Foundation, Boston, MA, 2013 . Stallman, R.M., the GCC Developer Community. Using the GNU Compiler Collection for GCC 4.8.0. GNU Press, Free Software Foundation, Boston, MA, 2013."},{"key":"e_1_2_1_37_1","unstructured":"Teo E. {PATCH} add &lt;code&gt;-fno-delete-null-pointer-checks&lt;\/code&gt; to gcc &lt;code&gt;CFLAGS&lt;\/code&gt; Jul. 2009. https:\/\/lists.ubuntu.com\/archives\/kernel-team\/2009-July\/006609.html.  Teo E. {PATCH} add &lt;code&gt;-fno-delete-null-pointer-checks&lt;\/code&gt; to gcc &lt;code&gt;CFLAGS&lt;\/code&gt; Jul. 2009. https:\/\/lists.ubuntu.com\/archives\/kernel-team\/2009-July\/006609.html."},{"key":"e_1_2_1_38_1","volume-title":"Jun.","author":"Tinnes J.","year":"2009","unstructured":"Tinnes , J. Bypassing Linux NULL pointer dereference exploit prevention (&lt;code&gt;mmap_min_addr&lt;\/code&gt;) , Jun. 2009 . http:\/\/blog.cr0.org\/2009\/06\/bypassing-linux-null-pointer.html. Tinnes, J. Bypassing Linux NULL pointer dereference exploit prevention (&lt;code&gt;mmap_min_addr&lt;\/code&gt;), Jun. 2009. http:\/\/blog.cr0.org\/2009\/06\/bypassing-linux-null-pointer.html."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2338965.2336788"},{"key":"e_1_2_1_40_1","volume-title":"May","author":"Torvalds L.","year":"2007","unstructured":"Torvalds , L. Re : {patch} CFS scheduler, -v8 , May 2007 . https:\/\/lkml.org\/lkml\/2007\/5\/7\/213. Torvalds, L. Re: {patch} CFS scheduler, -v8, May 2007. https:\/\/lkml.org\/lkml\/2007\/5\/7\/213."},{"key":"e_1_2_1_41_1","volume-title":"Feb.","author":"Tourrilhes J.","year":"2003","unstructured":"Tourrilhes , J. Invalid compilation without &lt;code&gt;-fno-strict-aliasing&lt;\/code&gt; , Feb. 2003 . https:\/\/lkml.org\/lkml\/2003\/2\/25\/270. Tourrilhes, J. Invalid compilation without &lt;code&gt;-fno-strict-aliasing&lt;\/code&gt;, Feb. 2003. https:\/\/lkml.org\/lkml\/2003\/2\/25\/270."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2349896.2349905"},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the 10th Symposium on Operating Systems Design and Implementation (OSDI)","author":"Wang X.","year":"2012","unstructured":"Wang , X. , Chen , H. , Jia , Z. , Zeldovich , N. , Kaashoek , M.F. Improving integer security for systems with KINT . In Proceedings of the 10th Symposium on Operating Systems Design and Implementation (OSDI) ( Hollywood, CA , Oct. 2012 ), 163--177. Wang, X., Chen, H., Jia, Z., Zeldovich, N., Kaashoek, M.F. Improving integer security for systems with KINT. In Proceedings of the 10th Symposium on Operating Systems Design and Implementation (OSDI) (Hollywood, CA, Oct. 2012), 163--177."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522728"},{"key":"e_1_2_1_45_1","volume-title":"Re: Why is this legal?","author":"Woods J.F.","year":"1992","unstructured":"Woods , J.F. Re: Why is this legal? Feb. 1992 . http:\/\/groups.google.com\/group\/comp.std.c\/msg\/dfe1ef367547684b. Woods, J.F. Re: Why is this legal? Feb. 1992. http:\/\/groups.google.com\/group\/comp.std.c\/msg\/dfe1ef367547684b."}],"container-title":["Communications of the ACM"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2885256","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2885256","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:39:07Z","timestamp":1750221547000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2885256"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,2,25]]},"references-count":45,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2016,2,25]]}},"alternative-id":["10.1145\/2885256"],"URL":"https:\/\/doi.org\/10.1145\/2885256","relation":{},"ISSN":["0001-0782","1557-7317"],"issn-type":[{"value":"0001-0782","type":"print"},{"value":"1557-7317","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,2,25]]},"assertion":[{"value":"2016-02-25","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}