Jonas Jensen
0caf0f1f15
Merge pull request #430 from geoffw0/exprtemplate
...
CPP: Exclude template code from ExprHasNoEffect.ql
2018-11-12 09:27:36 +01:00
Geoffrey White
0e9c7fc085
Merge pull request #416 from raulgarciamsft/users/raulga/c6317
...
cpp: Incorrect not operator usage
2018-11-09 15:59:57 +00:00
Geoffrey White
5b09e11a52
CPP: Repair macro case.
2018-11-08 10:01:07 +00:00
Geoffrey White
d6f27f0b2d
CPP: Add a test of macros.
2018-11-08 09:58:59 +00:00
Raul Garcia
f9edaba5aa
Fixing typo.
...
Restricting to analyze only logical & and | operations
2018-11-07 13:26:09 -08:00
Geoffrey White
7bf9200a18
CPP: Fix (it looks like we already had a similar test, both are fixed.
2018-11-07 14:12:52 +00:00
Geoffrey White
73b186a695
CPP: Add test case.
2018-11-07 13:34:42 +00:00
Jonas Jensen
6f2fd05480
Merge pull request #354 from geoffw0/return-exception
...
CPP: Remove successor edges after calls to non-returning functions
2018-11-07 09:24:41 +01:00
Raul Garcia
5a35edfbe2
cpp: Incorrect not opeartor usage
...
Marked as Low precision as Linux kernel code mix the usage of logical operators and bit-wise opeartors.
warning C6317: incorrect operator: logical-not (!) is not interchangeable with ones-complement (~)
2018-11-06 12:49:33 -08:00
Dave Bartolomeo
62a5aef0de
Merge pull request #410 from jbj/range-analysis-tests
...
C++: Tests for two range analysis bugs
2018-11-06 10:51:12 -08:00
Geoffrey White
9c97176896
CPP: Tabs/spaces.
2018-11-06 17:01:30 +00:00
Jonas Jensen
9382c9d528
C++: Regression tests for AV Rule 82
...
Without the last commit, this addition to the test gives the following
results:
```
+| AV Rule 82.cpp:176:14:176:22 | operator= | Assignment operator in class Forgivable does not return a reference to *this. |
+| AV Rule 82.cpp:181:14:181:22 | operator= | Assignment operator in class Forgivable does not return a reference to *this. |
```
2018-11-06 16:13:44 +01:00
Jonas Jensen
4a02b3946d
C++: Tests for two range analysis bugs
2018-11-06 11:57:41 +01:00
Dave Bartolomeo
3133bf6675
C++: Fix test expectation
2018-11-05 14:19:59 -08:00
Dave Bartolomeo
0c796de831
C++: Fork AV Rule 78 into NonVirtualDestructorInBaseClass
...
AV Rule 78 has proved too noisy for use on lgtm.com. However, if we make the rule less noisy by, say, allowing a protected destructor to be non-virtual, we're no longer actually enforcing AV Rule 78. Instead, I've copied AV Rule 78 into NonVirtualDestructorInBaseClass.ql, given the new query the `@id` that AV Rule 78 had, and given AV Rule 78 a new JSF-specific `@id`. The new rule allows non-public non-virtual destructors, which is the problem originally reported by an lgtm.com user.
2018-11-05 14:16:35 -08:00
Geoffrey White
6427e9658b
CPP: Remove successor edges from non-returning functions from the control flow graph.
2018-10-30 14:25:32 +00:00
Geoffrey White
44f5e26fb0
CPP: More test cases.
2018-10-30 14:20:48 +00:00
Geoffrey White
a346f412bc
CPP: Add test cases.
2018-10-30 14:11:36 +00:00
Robert Marsh
fda75abcd7
Merge pull request #381 from geoffw0/comments
...
CPP: Fix false positive in EmptyBlock.ql
2018-10-29 15:35:08 -07:00
semmle-qlci
a4371ca824
Merge pull request #338 from geoffw0/hresult
...
Approved by dave-bartolomeo
2018-10-29 17:04:54 +00:00
Geoffrey White
3ccbeb0c65
CPP: Fix issue.
2018-10-29 16:34:57 +00:00
Geoffrey White
630233fc3e
CPP: Additional test cases.
2018-10-29 16:34:43 +00:00
semmle-qlci
7d37cf4bb3
Merge pull request #374 from jbj/range-analysis-rounding
...
Approved by kevinbackhouse
2018-10-29 10:28:15 +00:00
Jonas Jensen
006594fefe
C++: Round towards +/- Inf in range analysis
...
Original author: Kevin Backhouse
2018-10-26 11:53:51 +02:00
Geoffrey White
fa55e31f7a
Merge pull request #362 from jbj/return-this-noreturn
...
C++: Fix "Overloaded assignment does not return 'this'" for non-returning functions
2018-10-26 09:30:36 +01:00
Jonas Jensen
354f8bd0ff
C++: Test of range analysis 64-bit rounding issue
2018-10-25 16:18:22 +02:00
Jonas Jensen
5cbfdd1029
C++: Cover more cases of returning *this
2018-10-25 10:41:56 +02:00
Jonas Jensen
d144f0d154
C++: Test for unreachable return statement
...
This test shows that the previous fix did not solve the problem where a
bad return statement exists but is unreachable.
2018-10-25 09:42:15 +02:00
semmle-qlci
cfe0b8803a
Merge pull request #332 from raulgarciamsft/users/raulga/c6293a
...
Approved by dave-bartolomeo
2018-10-25 00:59:35 +01:00
Jonas Jensen
3c6bed4de6
C++: FP fix for "operator= doesn't return *this"
2018-10-24 15:44:00 +02:00
Jonas Jensen
47a548f564
C++: FP test for "operator= doesn't return *this"
...
This rule should not apply to functions that never return.
2018-10-24 15:42:39 +02:00
Jonas Jensen
7affbe4a7d
Merge pull request #341 from geoffw0/av_114
...
CPP: Improve AV Rule 114.ql's understanding of return types.
2018-10-24 09:39:51 +02:00
Jonas Jensen
640de0c947
Merge pull request #304 from geoffw0/resource-released
...
CPP: Fix false positive in AV Rule 79.ql
2018-10-23 20:24:23 +02:00
semmledocs-ac
1f390f2f77
Merge pull request #326 from rdmarsh2/rdmarsh/cpp/dead-code-goto
...
C++: new query for dead code after goto or break
2018-10-23 16:55:14 +01:00
Geoffrey White
dda7069890
CPP: Look for destructors in the template.
2018-10-23 13:05:43 +01:00
Geoffrey White
76a5072c8b
CPP: Change in results presumed to result from discover_walk extractor changes.
2018-10-23 13:05:43 +01:00
Geoffrey White
b861df0887
CPP: Fix issue when destructor body is missing.
2018-10-23 13:05:42 +01:00
Geoffrey White
5931a978dc
CPP: Add a test of a template instantiation where the destructor is never called.
2018-10-23 13:05:42 +01:00
Geoffrey White
f20af4906b
CPP: Add a test of a Shutdown / Clear method.
2018-10-23 13:05:42 +01:00
Robert Marsh
7bcc4379fc
C++: accept loops with arbitrary labels or cases
2018-10-22 09:59:49 -07:00
Raul Garcia
2f4da8841f
Changing the name (file & tags) to match the JS version.
2018-10-19 15:21:56 -07:00
Geoffrey White
5158984613
CPP: Fix the issue.
2018-10-19 22:51:35 +01:00
Geoffrey White
c97a5ed292
CPP: Add tests of AV Rule 114.ql with non-trivial return types.
2018-10-19 22:49:53 +01:00
Geoffrey White
e9499b59e4
CPP: Exclude switch statements.
2018-10-19 10:24:29 +01:00
Geoffrey White
298ead162d
CPP: Add more test cases for HResultBooleanConversion.ql.
2018-10-19 10:24:29 +01:00
Raul Garcia
e2fcaa9e20
Fixing typos & implementing the PR feedback
2018-10-18 14:44:24 -07:00
Raul Garcia
739804acb2
CPP : Ill-defined for-loop (C6293)
...
Superset of C6293, it looks for a mismatch between the initialization statement && condition and the direction of the iteration expression in a for loop.
2018-10-17 16:24:34 -07:00
Robert Marsh
17537bb88b
C++: respond to doc comments
2018-10-17 11:57:54 -07:00
Robert Marsh
73cae5390e
C++: new query for dead code after goto or break
2018-10-16 15:37:06 -07:00
Raul Garcia
7ab723ae79
Fixing typos & incorporating feedback.
...
(MSFT feedback) Adding a new tag in the header @msrc.severity important
2018-10-16 10:00:51 -07:00