Skip to content

Merge from Microsoft 2021-08-25 #687

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 8 commits into from
Aug 26, 2021

Conversation

mattmccutchen-cci
Copy link
Member

@mattmccutchen-cci mattmccutchen-cci commented Aug 25, 2021

The main motivation for merging now is the &str[i] fix (checkedc#1163), which benefits the tiny-bignum-c tutorial, but we can hold off on the merge if it would be too disruptive to other work.

The 3C regression tests pass. Would people like me to run additional tests, or do you want to run your own tests (e.g., your own ports)?

Mandeep Singh Grang and others added 8 commits August 5, 2021 10:51
We introduce a 2-bit field called CheckedScopeSpecifier in the Stmt class.
During parsing when a compound statement is created we iterate the elements
(statements) of the compound statement and set the checked scope specifier for
each element to the checked scope specifier of the compound statement.

We can get the checked scope specifier for a statement by calling the
getCheckedScopeSpecifier method on the statement.
* Updated the instructions for upgrade of LLVM/Clang.
Also added a new file LLVM-Upgrade-Notes.md to track important
information related to upgrades.

* Fixed typos.

* Addressed review comments.

* Fixed an inadvertent deletion.

* Addressed review comments.

* Incorporated review comments.

* Fixed minor typos.

* Fixed typos.
…kedc#1154)

The community has introduced a new annotation called "contains-errors" on AST
nodes that contain semantic errors. As a result, after the upgrade of Checked C
sources to LLVM 12 we need to check if an expr contains errors before operating
on the expr. One such place is in InverseUtil::IsInvertible where we need to
check if the input modifying expr contains errors.

* Added containsErrors checks to InverUtil::Inverse
…kedc#1149)

Support bounds widening in presence of complex conditionals like:
  "if (*p != 0)", "if ((c = *p) == 'a')", etc.
… 1 in TargetSrcEquality (checkedc#1162)

* Add AllowTempEquality parameter to RecordEqualityWithTarget

* Use a ModifiedSameValue variable to determine the return value for UpdateSameValueAfterAssignment

* Rename ModifiedSameValue to RemovedAnyExprs and clean up comments
…nces (checkedc#1163)

* In CheckAddressOfOperand, add case for address-of array subscripts to C99-specific logic

* Move address-of array subscript check after other checks such as taking the address of an lvalue

* Adjust expected AST output to account for different types of address-of array subscripts

* Restore deleted comment about checking for array subscript expressions

* Add comment explaining the placement of the address-of array subscript logic

* Put &e1[e2] typing rules under a Checked C flag
Copy link
Collaborator

@john-h-kastner john-h-kastner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no problem with merging this now. None of the changes seem like they would break our ports.

@mattmccutchen-cci mattmccutchen-cci merged commit 54a80ab into main Aug 26, 2021
@mattmccutchen-cci mattmccutchen-cci deleted the merge-from-microsoft-20210825 branch August 26, 2021 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants