-
Notifications
You must be signed in to change notification settings - Fork 2k
C++: Represent temporary object initialization in AST and IR #4432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
68 commits
Select commit
Hold shift + click to select a range
badb117
AST and IR support for `TemporaryObjectExpr`
80b832e
Fix test expectations
22638fd
Merge remote-tracking branch 'upstream/main' into work
bf8340f
Fix test expectations in `syntax-zoo`
1e455f0
Fix test expectations
e4bfb75
C++: Fix pointer flow through temporary objects
dfe69d8
Update taint test to propagate through string constructor
93f5ae4
Clean up test formatting and accept new lines in results
fba4313
Merge remote-tracking branch 'upstream/main' into work
794a672
C++: Add ability to dump local dataflow info in IR dumps
ceea5b3
Fix test code that returns reference to local
3767a52
Fix ODR violations in test code
14ac985
Remove more ODR violations from test code.
6a9ecf7
Dump static call target for Call instructions
9afddf0
Insert a load of the temporary object for arguments passed by value
cf19fcf
C++: Improve dataflow model for copy/move constructors
af799a7
Accept good test diffs
675256a
Accept test diffs from `set.cpp` (50 new good results!)
7da4eef
Fix subtle typing issue with `std::makr_pair`
686f5aa
Handle parameter indirections in `make_shared` and `make_unique`
1b53c46
Fix test expectations due to `pair`/`make_pair` fixes
1dae8f6
Model copy-ish constructors for `std::pair`
4814dcf
Print partial flow info in `PrintIRLocalFlow.qll`
e4fdf69
Accept improved test results
4e0afb0
Print targets of `Load` and `Store` instructions in IR dump
40cd96e
Merge from `main`
eb9cea4
Fix modeling of `std::set::emplace`
129e250
Update test expectations
5f6ae32
Accept test output after merge
939bfae
Fix formatting
0b2acff
Add upgrade script
2f34c78
Fix formatting
b73cb3a
Accept C# IR diffs
ece20cd
Merge branch 'main' into dbartol/temporaries/work
2ba1ef9
Merge remote-tracking branch 'upstream/main' into work
d0b93df
Merge from `main`
2eaa4a4
Merge remote-tracking branch 'upstream/main' into work
ade6d10
Merge remote-tracking branch 'upstream/main' into work
7de6415
Accept test diffs after merge
735c657
IR consistency checks for `FieldAddress` and `this` arguments that ar…
4ba2817
Fix IR generation for member access with a prvalue on the RHS
8c8daa3
Update stats
c739f98
Merge remote-tracking branch 'upstream/main' into work
08af080
Add examples to QLDoc comment
98e0ae4
Add tests for member accesses on temporary objects
ee18db7
Fix IR for member accesses on prvalues
5259f86
Accept diff (needs further investigation, though)
1de1ab6
Merge remote-tracking branch 'upstream/main' into work
f7eeada
Accept more diffs
b62bda6
Fix regression due to primary instructions for side effects not being…
9907248
Fix PR feedback
bace0dc
Handle more cases that require synthesizing temporary objects
35abcae
Fix formatting
1e96404
Revert bad changes to `basic_string`
4d2f658
Don't treat allocator argument as a string input
8666805
Avoid ODR violation in test code
3fce971
Fix taint propagation to qualifier objects and update test expectations
5a6cd4a
Fix test expectations for new nodes and edges in path queries
7a2c59c
Merge from main
c49e33f
Fixup after merge
4237341
Merge from `main`
ec398b2
Merge remote-tracking branch 'upstream/main' into work
be180aa
Fixup after merge
69dee15
Fix PR feedback
e9d1f0d
Merge remote-tracking branch 'upstream/main' into work
0d1fbd1
Fix annotations
f0b9794
Merge remote-tracking branch 'upstream/main' into work
4cc9110
Fix test expectation
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be consistent with how we interleave
instruction -> operandsteps in dataflow we should probably convert this to pureinstruction -> operandandoperand -> instructionflow at some point once this PR has been merged. But I'm fine with these changes as they are now!There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I just didn't want to change more than I already had to.