4315 Commits

Author SHA1 Message Date
Dave Bartolomeo
87f0b0ef97 C++: QLDoc for EdgeKind.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
440ea6a069 C++: QLDoc for PrintIR.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
2043d9c7c4 C++: QLDoc for Operand.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
ead2a143e0 C++: QLDoc for IRVariable
Moved a couple of predicates that were only needed by IR construction into `TranslatedElement.qll`
2020-06-29 12:43:50 -04:00
Dave Bartolomeo
1423ea0591 C++: More IR.qll QLDoc 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
98348a9353 C++: QLDoc for IR.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
88f89b3334 C++: QLDoc for IRFunction.qll 2020-06-29 12:43:49 -04:00
Dave Bartolomeo
d0af9f5808 C++: QLDoc all of IRBlock.qll 2020-06-29 12:43:49 -04:00
Dave Bartolomeo
77bf564136 C++: Finish Instruction.qll QLDoc 2020-06-29 12:43:49 -04:00
Dave Bartolomeo
6de3d5bc3d C++: Change opcode QLDocs to refer to instruction QLDocs
As discussed in today's C++ analysis team meeting. `Opcode` is rarely used directly, so we'll just refer to the documentation for the corresponding `Instruction` class.

I've preserved the script in case we want to do a bulk change of all of the `Opcode` comments, but I don't expect it will be needed if we just add a new `Opcode` or two.
2020-06-29 12:41:36 -04:00
Geoffrey White
a8a7df4e5c C++: QLDoc SensitiveExprs.qll. 2020-06-29 17:08:44 +01:00
Geoffrey White
e2e5e9b2a9 C++: QLDoc Synchronization.qll and improve existing QLDoc. 2020-06-29 16:56:01 +01:00
Anders Schack-Mulligen
0bd81eb4b8 Dataflow: Fix reference to viableCallable. 2020-06-29 16:22:58 +02:00
Geoffrey White
55883f60f7 C++: Autoformat. 2020-06-29 14:48:15 +01:00
Geoffrey White
441d4c077a Update cpp/ql/src/semmle/code/cpp/exprs/Cast.qll
Co-authored-by: Jonas Jensen <jbj@github.com>
2020-06-29 13:13:00 +01:00
Nick Rolfe
ab1dc64eea C++: expand qldoc on MemberFunction::getTypeOfThis() 2020-06-29 11:54:28 +01:00
Mathias Vorreiter Pedersen
6b27652b99 C++: Remove abstractness from a couple of AST classes 2020-06-29 10:27:16 +02:00
Mathias Vorreiter Pedersen
5fbf30590e C++: Accept test changes. 2020-06-28 20:21:51 +02:00
Mathias Vorreiter Pedersen
9c0f877172 C++: Keep old instruction -> instruction flow in simpleInstructionLocalFlowStep. This means we don't have to add general operand -> instruction to the simpleLocalFlowStep relation, which seems to add a 10% performance regression. 2020-06-28 11:28:43 +02:00
Dave Bartolomeo
4dcdd8a0ee C++: Add last remaining QLDoc to Opcode.qll 2020-06-26 17:25:30 -04:00
Dave Bartolomeo
bdf121f3b8 C++: Update opcode QLDoc script to handle abstract base classes
This auto-generates even more QLDoc for `Opcode.qll`
2020-06-26 16:04:33 -04:00
Dave Bartolomeo
e00a8f7670 Merge pull request #3815 from jbj/getAPrimaryQlClass
C++: getCanonicalQLClass -> getAPrimaryQlClass
2020-06-26 13:52:16 -04:00
Dave Bartolomeo
5f290520ab C++: Accept test diffs due to opcode rename 2020-06-26 13:45:41 -04:00
Dave Bartolomeo
281985b845 C++: Sync Opcode.qll QLDoc with Instruction.qll QLDoc
For every concrete `Opcode`, there is a corresponding `Instruction` class. Rather than duplicate all of the QLDoc by hand, I wrote a quick Python script to copy the QLDoc from `Instruction.qll` to `Opcode.qll`. I don't expect that we will need to do this often, so I'm not hooking it up to a PR check or anything like that, but I did commit the script itself in case we need it again.
2020-06-26 11:42:32 -04:00
Dave Bartolomeo
023e1dc0a2 Instruction and opcode cleanup
- Renamed `DynamicCastToVoid` to the more descriptive `CompleteObjectAddress`
- Split verbose description from summary in a few Instruction QLDoc comments.
- Added `Instruction` classes for the few remaining `Opcode`s that didn't have one.
- Removed a use of "e.g."
2020-06-26 11:39:10 -04:00
Jonas Jensen
a22fb7662e C++: Autoformat fixup 2020-06-26 16:57:06 +02:00
Nick Rolfe
0ae5fb0357 C++: auto-format test query 2020-06-26 15:35:55 +01:00
Nick Rolfe
309a8e60c8 C++: add more test cases for the type of this 2020-06-26 14:20:46 +01:00
Nick Rolfe
e79625ed14 Accept suggested qldoc change
Co-authored-by: Dave Bartolomeo <dbartol@github.com>
2020-06-26 14:20:46 +01:00
Nick Rolfe
9e9d69238a C++: add test for MemberFunction::getTypeOfThis() 2020-06-26 14:20:46 +01:00
Nick Rolfe
8bd3be6e7b C++: add MemberFunction::getTypeOfThis() 2020-06-26 14:20:46 +01:00
Nick Rolfe
ca25971955 C++: upgrade script for member_function_this_type 2020-06-26 14:20:45 +01:00
Nick Rolfe
3b15d39ec6 C++: update stats for new member_function_this_type table 2020-06-26 14:20:45 +01:00
Nick Rolfe
133838dbf3 C++: update tests to expect type of this 2020-06-26 14:20:45 +01:00
Nick Rolfe
d1d7fac4ca C++: add member_function_this_type to dbscheme 2020-06-26 14:20:45 +01:00
Dave Bartolomeo
f48948c604 C++: Opcode cleanup
- Remove unused `MemoryAccessOpcode`
- Make `OpcodeWithCondition` private
- Add QLDoc for `Opcode` module
2020-06-26 09:04:37 -04:00
Mathias Vorreiter Pedersen
beb66299e9 Merge pull request #3796 from dbartol/codeql-c-analysis-team/40/2
C++: QLDoc for all of `Instruction.qll`
2020-06-26 14:04:48 +02:00
Dave Bartolomeo
11c702331a Merge pull request #3795 from rdmarsh2/rdmarsh/cpp/add-qldoc-3
C++: QLDoc for PrintAST and AST-based range analysis
2020-06-26 07:38:10 -04:00
Jonas Jensen
c1b26d71c3 C++: getCanonicalQLClass -> getAPrimaryQlClass
Also updated the QLDoc for `getAPrimaryQlClass` to match the Go version.
2020-06-26 13:20:36 +02:00
Jonas Jensen
9d8052a434 Merge pull request #3813 from MathiasVP/is-argument-for-parameter-join-order
C++: Improve join order for AliasAnalysis::isArgumentForParameter
2020-06-26 11:34:33 +02:00
Mathias Vorreiter Pedersen
63752dddef C++/C#: Sync identical files 2020-06-26 09:08:44 +02:00
Mathias Vorreiter Pedersen
3af679e83d C++: Put unique around getEnclosingFunction, and specialize function argument, to improve join order. 2020-06-26 09:08:35 +02:00
Dave Bartolomeo
7e3f2dbe4c C++: Improve QLDoc for getElementSize() 2020-06-25 17:04:32 -04:00
Jonas Jensen
d4c5887122 Merge pull request #3807 from geoffw0/qldoc3
C++: Even more QLDoc
2020-06-25 19:29:35 +02:00
Geoffrey White
168f9404f0 Merge branch 'master' into models5 2020-06-25 17:42:08 +01:00
Geoffrey White
488d41f797 C++: QLDoc Cast.qll. 2020-06-25 17:30:45 +01:00
Geoffrey White
6639d6de83 C++: QLDoc exprs\ObjectiveC.qll (deprecated). 2020-06-25 17:30:45 +01:00
Geoffrey White
1df843c8f6 C++: QLDoc multiple files in the exprs directory. 2020-06-25 17:30:44 +01:00
Geoffrey White
b7730fb1ad C++: QLDoc PrintfLike.qll. 2020-06-25 17:30:44 +01:00
Robert Marsh
9a1f909129 C++: Fix QLDoc for PrintAST.qll nodes/edges 2020-06-25 09:07:20 -07:00