Understanding GCC Builtins to Develop Better Tools

07/01/2019
by   Manuel Rigger, et al.
0

C programs can use compiler builtins to provide functionality that the C language lacks. On Linux, GCC provides several thousands of builtins that are also supported by other mature compilers, such as Clang and ICC. Maintainers of other tools lack guidance on whether and which builtins should be implemented to support popular projects. To assist tool developers who want to support GCC builtins, we analyzed builtin use in 4,913 C projects from GitHub. We found that 37 increasing proportion of projects requires support of an exponentially increasing number of builtins; however, implementing only 10 builtins already covers over 30 corpus remained unused, the effort needed to support 90 moderate, requiring about 110 builtins to be implemented. For each project, we analyzed the evolution of builtin use over time and found that the majority of projects mostly added builtins. This suggests that builtins are not a legacy feature and must be supported in future tools. Systematic testing of builtin support in existing tools revealed that many lacked support for builtins either partially or completely; we also discovered incorrect implementations in various tools, including the formally verified CompCert compiler.

READ FULL TEXT
research
06/08/2023

X-COBOL: A Dataset of COBOL Repositories

Despite being proposed as early as 1959, COBOL (Common Business-Oriented...
research
05/20/2020

An Empirical Study of User Support Tools in Open Source Software

End users positive response is essential for the success of any software...
research
02/01/2022

Industry Experiences with Large-Scale Refactoring

Software refactoring plays an important role in software engineering. De...
research
01/27/2021

Testing in Global Software Development – A Pattern Approach

Although testing is critical in GSD, its application in this context has...
research
09/30/2021

Crypto Experts Advise What They Adopt

Previous studies have shown that developers regularly seek advice on onl...
research
02/05/2020

Patterns for Name Analysis and Type Analysis with JastAdd

In the last two decades, tools have been implemented to more formally sp...
research
06/02/2023

A systematic literature review on the code smells datasets and validation mechanisms

The accuracy reported for code smell-detecting tools varies depending on...

Please sign up or login with your details

Forgot password? Click here to reset