Skip to content
Snippets Groups Projects
  • Eric Fiselier's avatar
    28be04dd
    [coroutines] Fix fallthrough diagnostics for coroutines · 28be04dd
    Eric Fiselier authored
    Summary:
    This patch fixes a number of issues with the analysis warnings emitted when a coroutine may reach the end of the function w/o returning.
    
    * Fix bug where coroutines with `return_value` are incorrectly diagnosed as missing `co_return`'s.
    * Rework diagnostic message to no longer say "non-void coroutine", because that implies the coroutine doesn't have a void return type, which it might. In this case a non-void coroutine is one who's promise type does not contain `return_void()`
    
    As a side-effect of this patch, coroutine bodies that contain an invalid coroutine promise objects are marked as invalid.
    
    Reviewers: GorNishanov, rsmith, aaron.ballman, majnemer
    
    Reviewed By: GorNishanov
    
    Subscribers: cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D33532
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@303831 91177308-0d34-0410-b5e6-96231b3b80d8
    28be04dd
    History
    [coroutines] Fix fallthrough diagnostics for coroutines
    Eric Fiselier authored
    Summary:
    This patch fixes a number of issues with the analysis warnings emitted when a coroutine may reach the end of the function w/o returning.
    
    * Fix bug where coroutines with `return_value` are incorrectly diagnosed as missing `co_return`'s.
    * Rework diagnostic message to no longer say "non-void coroutine", because that implies the coroutine doesn't have a void return type, which it might. In this case a non-void coroutine is one who's promise type does not contain `return_void()`
    
    As a side-effect of this patch, coroutine bodies that contain an invalid coroutine promise objects are marked as invalid.
    
    Reviewers: GorNishanov, rsmith, aaron.ballman, majnemer
    
    Reviewed By: GorNishanov
    
    Subscribers: cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D33532
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@303831 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.