Jonas Jensen
fee7ce6c7f
Merge pull request #4221 from rajivshah3/fix/cpp-av-32-include
...
C++: Allow .inc files to be included
2020-09-11 16:53:43 +02:00
Jonas Jensen
ab90f06ddf
C++: Rename Block -> BlockStmt
2020-09-08 08:40:20 +02:00
Rajiv Shah
f168356181
C++: Allow .inc files to be included
2020-09-07 18:09:21 -04:00
Mathias Vorreiter Pedersen
b3d18ef610
C++: Add cases for conditional and comma operator in AV RUle 82
2020-09-07 08:59:08 +02:00
Arthur Baars
aedfa47cb4
Add missing QHelp files
2020-09-01 12:46:57 +02:00
Geoffrey White
6b5f4d9e12
Merge branch 'master' into av114
2020-04-01 18:23:21 +01:00
Anders Schack-Mulligen
96e4a57edd
C++: Autoformat.
2020-01-29 13:11:50 +01:00
Geoffrey White
e8139c0f31
CPP: Autoformat.
2020-01-14 14:35:58 +00:00
Geoffrey White
d98d80b07d
CPP: Improve locations for AV Rule 114.ql.
2020-01-14 14:33:43 +00:00
Dave Bartolomeo
6c8de44800
Merge pull request #2604 from geoffw0/returnthis
...
CPP: Exclude template classes from cpp/assignment-does-not-return-this
2020-01-08 09:12:22 -07:00
Geoffrey White
b6e1f35ff6
CPP: Generalize the fix to all template code.
2020-01-08 13:36:59 +00:00
Geoffrey White
527d29ba23
CPP: Exclude template classes from the query.
2020-01-08 13:16:38 +00:00
Geoffrey White
72b4792391
CPP: Exception for AsmStmts.
2020-01-07 12:46:07 +00:00
Jonas Jensen
29f66ff095
C++: Use StackVariable, remove not v.isStatic()
...
In these files it was possible to remove calls to `isStatic` by
switching from `LocalScopeVariable` to `StackVariable`. This changes
semantics, hopefully for the better, to treat `thread_local` locals the
same as `static` locals.
2019-11-19 11:30:59 +01:00
Robert Marsh
7e8a67a046
Merge branch 'master' into rdmarsh/cpp/hasGlobalOrStdName
2019-11-08 11:33:35 -08:00
Robert Marsh
03f72d207c
C++: use Declaration.hasGlobalOrStdName
2019-10-02 11:37:37 -07:00
Geoffrey White
3df31e6ccf
CPP: Tiny qldoc fixes.
2019-09-16 16:52:48 +01:00
Jonas Jensen
4ef5c9af62
C++: Autoformat everything
...
Some files that will change in #1736 have been spared.
./build -j4 target/jars/qlformat
find ql/cpp/ql -name "*.ql" -print0 | xargs -0 target/jars/qlformat --input
find ql/cpp/ql -name "*.qll" -print0 | xargs -0 target/jars/qlformat --input
(cd ql && git checkout 'cpp/ql/src/semmle/code/cpp/ir/implementation/**/*SSA*.qll')
buildutils-internal/scripts/pr-checks/sync-identical-files.py --latest
2019-09-09 11:25:53 +02:00
Jonas Jensen
3324bfb198
C++: Fix long comments without * on each line
...
Comments like these will make the autoformatter produce bad indentation.
For the record (not for explainability), these issues were found with
git grep -P -A1 '^( */\*| +\*( |$))(.(?!\*/))*$' cpp/ql/src/'**/*.ql*' |grep -B10 'qll\?- [^*]*$'
2019-09-09 11:04:04 +02:00
Jonas Jensen
c8725766bd
C++: Fixes from Geoffrey's review round 2
2019-09-09 11:04:04 +02:00
Jonas Jensen
8e98d42504
C++: Turn more "short" comments into "long"
...
The autoformatter is opinionated about comment styles and assumes that
"short" comments attach to the following item while "long" comments are
items themselves. I found top-level short comments with the following
two commands and then searched the output for empty lines that came
after the comment.
git grep -A1 '^/\* .*\*/' cpp/ql/src
git grep -A1 '^//' 'cpp/ql/src/**/*.ql*'
2019-09-09 11:04:04 +02:00
Jonas Jensen
95f53639b1
C++: Fixes to avoid confusing autoformat
...
These issues were found by Geoffrey in PR review.
2019-09-09 11:04:04 +02:00
Jonas Jensen
2c253f360a
C++: Support x-macros that are #undef'ed in header
...
This fixes a false positive on https://github.com/zduka/tpp .
2019-08-28 13:03:16 +02:00
Geoffrey White
6cca2d54f4
CPP: Autoformat.
2019-06-18 13:26:54 +01:00
Geoffrey White
fb5d02a634
CPP: Remove a redundant line.
2019-06-18 11:40:12 +01:00
Geoffrey White
bdb495d58a
CPP: Fix AV Rule 95 performance issue.
2019-06-18 11:25:48 +01:00
Geoffrey White
37a1c48071
CPP: Optimize AV Rule 71.ql.
2019-06-13 15:30:56 +01:00
Dave Bartolomeo
e90403be31
C++: Make constructor-used-as-copy-constructor warning/low
...
This query is supposed to look for constructors that unintentionally qualify as copy constructors due to default arguments. There are quite a few real-world projects that define such constructors intentionally. I've reduced the severity to "warning" and the precision to "low" due to the high false positive rate.
2019-05-30 08:33:26 -07:00
Robert Marsh
d20efe49dd
C++: respond to PR comments
2019-05-28 07:51:59 -07:00
Robert Marsh
dbdaa1d3f3
C++: Replace getUnderlyingType().getUnspecifiedType()
2019-05-20 15:23:08 +01:00
Robert Marsh
e899120270
C++: replace getType().getUnspecifiedType()
2019-05-20 15:08:28 +01:00
Jonas Jensen
64a87a863c
C++: Remove uses of getQualifiedName
...
This removes all uses of `Declaration.getQualifiedName` that I think can
be removed without changing any behaviour. The following uses in the
LGTM default suite remain:
* `cpp/ql/src/Security/CWE/CWE-121/UnterminatedVarargsCall.ql` (in `select`).
* `cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowDispatch.qll` (needs template args).
* `cpp/ql/src/semmle/code/cpp/security/FunctionWithWrappers.qll` (used for alert messages).
2019-05-03 10:37:48 +02:00
Geoffrey White
f381768a1e
CPP: Create HeaderFile.noTopLevelCode from existing logic.
2019-04-11 11:21:53 +01:00
Jonas Jensen
d619a8c693
Merge pull request #1192 from geoffw0/severity
...
CPP: Change some query severities
2019-04-05 09:23:27 +02:00
Jonas Jensen
eae2fe5a16
Merge pull request #1190 from Semmle/rc/1.20
...
Merge 1.20 into master
2019-04-02 15:29:12 +02:00
Geoffrey White
1542fdc44b
CPP: Change AV Rule 107.ql to a recommendation.
2019-04-02 12:19:33 +01:00
Arthur Baars
4b95fbbb39
C++ Fix select statements of AV 3 and 81
2019-04-01 11:20:12 +02:00
Geoffrey White
f358e61719
CPP: Add a reference about include optimization to the qhelp for AV Rule 35.
2019-03-28 16:37:50 +00:00
Jonas Jensen
c923e4cd36
Merge pull request #1091 from geoffw0/opts
...
CPP: Speed up AV Rule 35.ql
2019-03-26 15:13:53 +01:00
Geoffrey White
9b31b4e364
CPP: Fix false positive.
2019-03-25 11:57:23 +00:00
Geoffrey White
7fd08233c3
CPP: Optimize AV Rule 35's usesMacro.
2019-03-22 14:43:58 +00:00
Jonas Jensen
552842346c
C++: Fix special-casing of Qt library
...
The `Expr.getType` predicate returns a pointer type since that's the
type of the `new`-expression as a whole. To find the class type, we use
`NewExpr.getAllocatedType`.
This commit reduces the number of alerts in a Qt snapshot from 229 to
51, and it removes the two false positives in
https://github.com/Subsurface-divelog/subsurface .
2019-03-21 13:37:18 +01:00
Jonas Jensen
ccfb1c229a
Merge pull request #831 from geoffw0/query-tags-5
...
CPP: Tweak tags for consistency
2019-01-28 10:55:09 +01:00
Geoffrey White
1328cb8013
CPP: Tweak tags for consistency across near duplicate queries.
2019-01-25 16:50:05 +00:00
Geoffrey White
175ff9644a
CPP: Change * to +.
2019-01-22 16:41:57 +00:00
Geoffrey White
fab8e526f3
CPP: Replace call to getEnclosingAccessHolder() with getEnclosingElement().
2019-01-21 18:30:20 +00:00
Jonas Jensen
9561fdaabf
Merge pull request #672 from geoffw0/lgtm1605
...
CPP: Fix function pointer/lambda related false positives in 'Resource not released in destructor'
2019-01-21 09:35:30 +01:00
Aditya Sharad
f92456fcad
Merge master into next.
...
Conflict in `cpp/ql/test/library-tests/sideEffects/functions/sideEffects.expected`,
resolved by accepting test output (combining changes).
2018-12-12 17:26:18 +00:00
Geoffrey White
2f3a874c7d
CPP: Fix false positives when a member variable is released via the target of a function pointer.
2018-12-12 11:38:44 +00:00
Geoffrey White
370387a9ca
CPP: Fix false positives when member variable is released via an ExprCall.
2018-12-12 11:38:44 +00:00