Skip to content
Snippets Groups Projects
  • Jordan Rose's avatar
    eafb5c69
    [analyzer] Don't look through casts when creating pointer temporaries. · eafb5c69
    Jordan Rose authored
    Normally, we need to look through derived-to-base casts when creating
    temporary object regions (added in r175854). However, if the temporary
    is a pointer (rather than a struct/class instance), we need to /preserve/
    the base casts that have been applied.
    
    This also ensures that we really do create a new temporary region when
    we need to: MaterializeTemporaryExpr and lvalue CXXDefaultArgExprs.
    
    Fixes PR15342, although the test case doesn't include the crash because
    I couldn't isolate it.
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176069 91177308-0d34-0410-b5e6-96231b3b80d8
    eafb5c69
    History
    [analyzer] Don't look through casts when creating pointer temporaries.
    Jordan Rose authored
    Normally, we need to look through derived-to-base casts when creating
    temporary object regions (added in r175854). However, if the temporary
    is a pointer (rather than a struct/class instance), we need to /preserve/
    the base casts that have been applied.
    
    This also ensures that we really do create a new temporary region when
    we need to: MaterializeTemporaryExpr and lvalue CXXDefaultArgExprs.
    
    Fixes PR15342, although the test case doesn't include the crash because
    I couldn't isolate it.
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176069 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.