Skip to content
  1. Apr 19, 2011
  2. Apr 18, 2011
  3. Apr 17, 2011
  4. Apr 16, 2011
  5. Apr 15, 2011
    • Douglas Gregor's avatar
      For the purposes of overload resolution, consider a conversion from an · 5d3d3fa3
      Douglas Gregor authored
      Objective-C pointer to void* as a "conversion to void*". This allows
      us to prefer an Objective-C object pointer conversion to a superclass
      object pointer over an Objective-C object pointer conversion to
      cv-void*. Fixes PR9735.
      
      llvm-svn: 129603
      5d3d3fa3
    • Douglas Gregor's avatar
      Forbid the use of C++ new/delete to allocate/free objects within an · 39d1a097
      Douglas Gregor authored
      address space. I could see that this functionality would be useful,
      but not in its current form (where the address space is ignored):
      rather, we'd want to encode the address space into the parameter list
      passed to operator new/operator delete somehow, which would require a
      bunch more semantic analysis.
      
      llvm-svn: 129593
      39d1a097
    • Douglas Gregor's avatar
      Parse GNU-style attributes prior to the type-id/new-type-id in a C++ · a3a020ae
      Douglas Gregor authored
      "new" expression. This matches GCC's parser. Test is forthcoming.
      
      llvm-svn: 129592
      a3a020ae
    • Fariborz Jahanian's avatar
      Fixes a crash when generating dependency file stuff · 193f783a
      Fariborz Jahanian authored
      and output file is not writable. // rdar://9286457.
      
      llvm-svn: 129587
      193f783a
    • Douglas Gregor's avatar
      Implement appropriate semantics for C++ casting and conversion when · b472e93a
      Douglas Gregor authored
      dealing with address-space- and GC-qualified pointers. Previously,
      these qualifiers were being treated just like cvr-qualifiers (in some
      cases) or were completely ignored, leading to uneven behavior. For
      example, const_cast would allow conversion between pointers to
      different address spaces.
      
      The new semantics are fairly simple: reinterpret_cast can be used to
      explicitly cast between pointers to different address spaces
      (including adding/removing addresss spaces), while
      static_cast/dynamic_cast/const_cast do not tolerate any changes in the
      address space. C-style casts can add/remove/change address spaces
      through the reinterpret_cast mechanism. Other non-CVR qualifiers
      (e.g., Objective-C GC qualifiers) work similarly.
      
      As part of this change, I tweaked the "casts away constness"
      diagnostic to use the term "casts away qualifiers". The term
      "constness" actually comes from the C++ standard, despite the fact
      that removing "volatile" also falls under that category. In Clang, we
      also have restrict, address spaces, ObjC GC attributes, etc., so the
      more general "qualifiers" is clearer.
      
      llvm-svn: 129583
      b472e93a
Loading