CppCon 2018 has ended
Back To Schedule
Tuesday, September 25 • 15:15 - 15:45
Funqual: user-defined statically-checked call tree constraints in C++

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Static analysis tools can aid programmers by reporting potential programming mistakes prior to the execution of a program. Funqual is a static analysis tool that reads C++17 code ”in the wild” and checks that the function call graph follows a set of  rules which can be defined by the user. This sort of analysis can help the programmer to avoid errors such as accidentally calling blocking functions in time-sensitive contexts or accidentally allocating memory in heap-sensitive environments. To accomplish this, we create a type system whereby functions can be given user-defined type qualifiers and where users can define their own restrictions on the call tree based on these type qualifiers. We demonstrate that this tool, when used with hand-crafted rules, can catch certain types of errors which commonly occur in the wild. We claim that this tool can be used in a production setting to catch certain kinds of errors in code before that code is even run.

avatar for Andrew Nelson

Andrew Nelson

Software Engineer, Arista Networks
Andrew is passionate about creating tools and methodologies that enable everyone to write high quality software. He recently completed a masters degree at Cal Poly SLO where his area of research involved static analysis. Today he works at Arista Networks on tools that make developers... Read More →

Tuesday September 25, 2018 15:15 - 15:45 PDT
Telluride (407)
  • Tooling