PROJECT STAGE3
Introduction: For Stage III, my goal is to further validate and demonstrate that my project can accurately process multiple cloned functions in a single program and make individual PRUNE/NOPRUNE recommendations for each one. In fact, my project has already supported this functionality since Stage II. To identify cloned functions, I extract the base function name from fun->decl, then iterate over all functions in the program using FOR_EACH_FUNCTION(node) while ensuring each has a valid name. I check if a function’s name starts with the base name and includes a dot (.) afterward, which typically signifies a clone. I also skip any functions containing .resolver in their name. Functions that meet these criteria are printed as cloned functions. This approach allows the detection of multiple clones, assuming they follow GCC’s naming conventions. To enable this analysis, DUMP_ALL must be set to 1 to activate all GCC dumps. For this stage, I will create test cases with at least two clo...