Skip to content
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

Available facts analysis #1152

Merged
merged 35 commits into from
Aug 26, 2021

Commits on Aug 5, 2021

  1. Revert "[BoundsWidening] Determine checked scope specifier per statem…

    …ent (#1139)" (#1141)
    
    This reverts commit 980321d.
    Mandeep Singh Grang committed Aug 5, 2021
    Configuration menu
    Copy the full SHA
    9326e89 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2021

  1. Determine checked scopes per statement (#1142)

    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.
    Mandeep Singh Grang committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    1d022b6 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2021

  1. Update the instructions for upgrade of LLVM/Clang. (#1146)

    * 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.
    sulekhark committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    363760d View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2021

  1. Configuration menu
    Copy the full SHA
    76e3e53 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    820a2bb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0d28f64 View commit details
    Browse the repository at this point in the history
  4. Add AbstractFact as a basic available fact;

    Add InferredFact and adjust WhereClauseFact to be a subclass of AbstractFact
    arbipher committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    7c67bed View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7ce39cd View commit details
    Browse the repository at this point in the history
  6. Add print and dump functions

    arbipher committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    820186f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    dbc7421 View commit details
    Browse the repository at this point in the history
  8. Add other utility functions.

    `IsSwitchCaseBlock`: use `dyn_cast_or_null` to cover the null pointer
    case.
    
    `ConditionOnEdge`: do not test if there is no edge between
    pred to curr since it will only be called if there is an edge.
    
    `GetModifiedVars`: use `TranspareCasts` to bypass some casting.
    The feature to deal with membership access and the array indexing is
    still TODO.
    arbipher committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    40be3ac View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    1cf53e0 View commit details
    Browse the repository at this point in the history
  10. Add testscases (one covers basic features and the other is converted

    from the previous available facts analysis)
    arbipher committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    95af48e View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    298fe7f View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    1628720 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    47cd2d5 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    30f3bbe View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    94c119f View commit details
    Browse the repository at this point in the history
  16. Fix: modify the Gen/Kill rules to match the design doc;

    It also fixes a bug to visit dead blocks.
    arbipher committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    6dea61d View commit details
    Browse the repository at this point in the history
  17. Cleanup comments

    arbipher committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    fc839ce View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    6f436dc View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    d72250e View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    dfe37d9 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    a649db8 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    c62fb9d View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    f180ccb View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    7c9eedc View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    6cc600c View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    424ef4a View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2021

  1. Verify if an expr contains errors before checking invertibility (#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
    Mandeep Singh Grang committed Aug 12, 2021
    Configuration menu
    Copy the full SHA
    35fbbde View commit details
    Browse the repository at this point in the history
  2. [BoundsWidening] Handle complex conditionals in bounds widening (#1149)

    Support bounds widening in presence of complex conditionals like:
      "if (*p != 0)", "if ((c = *p) == 'a')", etc.
    Mandeep Singh Grang committed Aug 12, 2021
    Configuration menu
    Copy the full SHA
    c218fc6 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2021

  1. Don't record temporary equality between expressions such as x and x +…

    … 1 in TargetSrcEquality (#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
    kkjeer committed Aug 20, 2021
    Configuration menu
    Copy the full SHA
    c88ca51 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2021

  1. Treat address-of array subscripts the same way as address-of derefere…

    …nces (#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
    kkjeer committed Aug 23, 2021
    Configuration menu
    Copy the full SHA
    4085e87 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2021

  1. Configuration menu
    Copy the full SHA
    2e5631a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4f8aa5b View commit details
    Browse the repository at this point in the history