{"shas":[["2e25cb3e27e24506e4882eda51284a1cfcaf3917","20237f4b434bdcccb3b4c7b8643e049a656bb565@91177308-0d34-0410-b5e6-96231b3b80d8","Implement appropriate semantics for C++ casting and conversion when\ndealing with address-space- and GC-qualified pointers. Previously,\nthese qualifiers were being treated just like cvr-qualifiers (in some\ncases) or were completely ignored, leading to uneven behavior. For\nexample, const_cast would allow conversion between pointers to\ndifferent address spaces.\n\nThe new semantics are fairly simple: reinterpret_cast can be used to\nexplicitly cast between pointers to different address spaces\n(including adding/removing addresss spaces), while\nstatic_cast/dynamic_cast/const_cast do not tolerate any changes in the\naddress space. C-style casts can add/remove/change address spaces\nthrough the reinterpret_cast mechanism. Other non-CVR qualifiers\n(e.g., Objective-C GC qualifiers) work similarly.\n\nAs part of this change, I tweaked the \"casts away constness\"\ndiagnostic to use the term \"casts away qualifiers\". The term\n\"constness\" actually comes from the C++ standard, despite the fact\nthat removing \"volatile\" also falls under that category. In Clang, we\nalso have restrict, address spaces, ObjC GC attributes, etc., so the\nmore general \"qualifiers\" is clearer.\n\n\n\ngit-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@129583 91177308-0d34-0410-b5e6-96231b3b80d8","dgregor"],["69e3e7aa61c5fc34bb832b2a04fce3211cd86f18","3b9de09f2ff76afe9f0ad4fcae4ff68f52ec7fc4@91177308-0d34-0410-b5e6-96231b3b80d8","Doug Gregor tells me that runtime/libcxx/ is a placeholder for stuff we never\ndid. Delete it.\n\n\ngit-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@129584 91177308-0d34-0410-b5e6-96231b3b80d8","nicholas"],["4495f5026bb851ba9dd7f0ad22546cb8a67fddb3","3b9de09f2ff76afe9f0ad4fcae4ff68f52ec7fc4@91177308-0d34-0410-b5e6-96231b3b80d8","Reapply r129561, moving the runtime/Makefile that builds compiler-rt into\nruntime/compiler-rt/Makefile paving the way to put multiple different libraries\ninto runtime/ and build all of them.\n\n\ngit-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@129585 91177308-0d34-0410-b5e6-96231b3b80d8","nicholas"],["b7ec831224db0fd7ec988c3a3d0e24590f5a9a0f","821deb8805920bd073fd43c65afe4bc0baeae628@91177308-0d34-0410-b5e6-96231b3b80d8","Fixes a crash when generating dependency file stuff\nand output file is not writable. // rdar://9286457.\n\n\ngit-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@129587 91177308-0d34-0410-b5e6-96231b3b80d8","fjahanian"]],"repo":"spurious/clang-mirror","actor":"spurious","ref":"refs/heads/trunk","size":4,"head":"b7ec831224db0fd7ec988c3a3d0e24590f5a9a0f","actor_gravatar":"43879d0feeead0dcdf6b3fa368714eef","push_id":29142987}