Skip to content
Snippets Groups Projects
  • George Burgess IV's avatar
    598b6770
    Add the alloc_size attribute to clang. · 598b6770
    George Burgess IV authored
    This patch does three things:
    
    - Gives us the alloc_size attribute in clang, which lets us infer the
      number of bytes handed back to us by malloc/realloc/calloc/any user
      functions that act in a similar manner.
    - Teaches our constexpr evaluator that evaluating some `const` variables
      is OK sometimes. This is why we have a change in
      test/SemaCXX/constant-expression-cxx11.cpp and other seemingly
      unrelated tests. Richard Smith okay'ed this idea some time ago in
      person.
    - Uniques some Blocks in CodeGen, which was reviewed separately at
      D26410. Lack of uniquing only really shows up as a problem when
      combined with our new eagerness in the face of const.
    
    Differential Revision: https://reviews.llvm.org/D14274
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290149 91177308-0d34-0410-b5e6-96231b3b80d8
    598b6770
    History
    Add the alloc_size attribute to clang.
    George Burgess IV authored
    This patch does three things:
    
    - Gives us the alloc_size attribute in clang, which lets us infer the
      number of bytes handed back to us by malloc/realloc/calloc/any user
      functions that act in a similar manner.
    - Teaches our constexpr evaluator that evaluating some `const` variables
      is OK sometimes. This is why we have a change in
      test/SemaCXX/constant-expression-cxx11.cpp and other seemingly
      unrelated tests. Richard Smith okay'ed this idea some time ago in
      person.
    - Uniques some Blocks in CodeGen, which was reviewed separately at
      D26410. Lack of uniquing only really shows up as a problem when
      combined with our new eagerness in the face of const.
    
    Differential Revision: https://reviews.llvm.org/D14274
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290149 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.