Auto summaries were only being used when non-pointer/reference variables didn't have values nor summaries. Greg pointed out that it should be better to simply use auto summaries when the variable doesn't have a summary of its own, regardless of other conditions. This led to code simplification and correct visualization of auto summaries for pointer/reference types, as seen in this screenshot. <img width="310" alt="Screenshot 2023-09-19 at 7 04 55 PM" src="https://github.com/llvm/llvm-project/assets/1613874/d356d579-13f2-487b-ae3a-f3443dce778f">
50 lines
939 B
C++
50 lines
939 B
C++
#include "foo.h"
|
|
|
|
#include <vector>
|
|
#include <map>
|
|
|
|
static int static_int = 42;
|
|
|
|
int non_static_int = 43;
|
|
|
|
int a_function(int var) {
|
|
return var; // breakpoint 3
|
|
}
|
|
|
|
struct my_struct {
|
|
int foo;
|
|
};
|
|
|
|
int main(int argc, char const *argv[]) {
|
|
my_struct struct1 = {15};
|
|
my_struct *struct2 = new my_struct{16};
|
|
my_struct *struct3 = nullptr;
|
|
int var1 = 20;
|
|
int var2 = 21;
|
|
int var3 = static_int; // breakpoint 1
|
|
{
|
|
int non_static_int = 10;
|
|
int var2 = 2;
|
|
int var3 = non_static_int; // breakpoint 2
|
|
}
|
|
a_function(var3);
|
|
foo_func();
|
|
|
|
std::vector<int> my_vec;
|
|
my_vec.push_back(1);
|
|
my_vec.push_back(2);
|
|
my_vec.push_back(3); // breakpoint 4
|
|
|
|
std::map<int, int> my_map;
|
|
my_map[1] = 2;
|
|
my_map[2] = 3;
|
|
my_map[3] = 4; // breakpoint 5
|
|
|
|
std::vector<bool> my_bool_vec;
|
|
my_bool_vec.push_back(true);
|
|
my_bool_vec.push_back(false); // breakpoint 6
|
|
my_bool_vec.push_back(true); // breakpoint 7
|
|
|
|
return 0;
|
|
}
|