mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
2.3 KiB
2.3 KiB
Improvements to C/C++ analysis
The following changes in version 1.26 affect C/C++ analysis in all applications.
General improvements
New queries
| Query | Tags | Purpose |
|---|
Changes to existing queries
| Query | Expected impact | Change |
|---|---|---|
Declaration hides parameter (cpp/declaration-hides-parameter) |
Fewer false positive results | False positives involving template functions have been fixed. |
Inconsistent direction of for loop (cpp/inconsistent-loop-direction) |
Fewer false positive results | The query now accounts for intentional wrapping of an unsigned loop counter. |
Overflow in uncontrolled allocation size (cpp/uncontrolled-allocation-size) |
The precision of this query has been decreased from "high" to "medium". As a result, the query is still run but results are no longer displayed on LGTM by default. | |
Comparison result is always the same (cpp/constant-comparison) |
More correct results | Bounds on expressions involving multiplication can now be determined in more cases. |
Changes to libraries
- The QL class
Block, denoting the{ ... }statement, is renamed toBlockStmt. - The models library now models many taint flows through
std::array,std::vector,std::deque,std::listandstd::forward_list. - The models library now models many more taint flows through
std::string. - The models library now models many taint flows through
std::istreamandstd::ostream. - The models library now models some taint flows through
std::shared_ptr,std::unique_ptr,std::make_sharedandstd::make_unique. - The models library now models many taint flows through
std::pair,std::map,std::unordered_map,std::setandstd::unordered_set. - The models library now models
bcopy. - The
SimpleRangeAnalysislibrary now supports multiplications of the forme1 * e2andx *= e2whene1ande2are unsigned or constant.