DEBADRIBASAK wrote:

@Xazax-hun @usx95 I do not think it is feasible to add the `StmtClassName` and 
`QualType` as keys without converting them to strings.

1. I tried using a DenseMap with `QualType` as the keys, but that is not 
allowed since QualType does not have tombstone.
2. I was planning to use the `StmtClass` as an index in an integer array of 
size `Stmt::lastStmtConstant+1`, and use `StmtClassInfo` array of 
`StmtClassNameTable` objects for getting their names while printing. But 
`StmtClassInfo` is a static array inside `Stmt.cpp` file and we cannot use it 
in other files.

I used two string maps for now:

```
*** LifetimeSafety Missing Origin per QualType: (QualType : count) :

basic_string<char> : 3
basic_string_view<char> : 1
class std::basic_string<char> : 1
char * : 12
const_iterator : 1
const value_type : 3
std::string_view : 27


*** LifetimeSafety Missing Origin per StmtClassName: (StmtClassName : count) :

CXXOperatorCallExpr : 6
BinaryOperator : 3
CXXMemberCallExpr : 2
UnaryOperator : 1
DeclRefExpr : 36

Total missing origins: 48
```

https://github.com/llvm/llvm-project/pull/166568
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to