Skip to content
Snippets Groups Projects
  • Jordan Rose's avatar
    98123284
    [analyzer] Handle zeroing CXXConstructExprs. · 98123284
    Jordan Rose authored
    Certain expressions can cause a constructor invocation to zero-initialize
    its object even if the constructor itself does no initialization. The
    analyzer now handles that before evaluating the call to the constructor,
    using the same "default binding" mechanism that calloc() uses, rather
    than simply ignoring the zero-initialization flag.
    
    As a bonus, trivial default constructors are now no longer inlined; they
    are instead processed explicitly by ExprEngine. This has a (positive)
    effect on the generated path edges: they no longer stop at a default
    constructor call unless there's a user-provided implementation.
    
    <rdar://problem/14212563>
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184511 91177308-0d34-0410-b5e6-96231b3b80d8
    98123284
    History
    [analyzer] Handle zeroing CXXConstructExprs.
    Jordan Rose authored
    Certain expressions can cause a constructor invocation to zero-initialize
    its object even if the constructor itself does no initialization. The
    analyzer now handles that before evaluating the call to the constructor,
    using the same "default binding" mechanism that calloc() uses, rather
    than simply ignoring the zero-initialization flag.
    
    As a bonus, trivial default constructors are now no longer inlined; they
    are instead processed explicitly by ExprEngine. This has a (positive)
    effect on the generated path edges: they no longer stop at a default
    constructor call unless there's a user-provided implementation.
    
    <rdar://problem/14212563>
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184511 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.