forked from OSchip/llvm-project
83f095cc7e
pointer. Its purpose in life is to be a glorified void*, but which does not implicitly convert to void* or other OpaquePtr's with a different UID. Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>. Change the entire parser/sema interface to use DeclPtrTy instead of DeclTy*. This makes the C++ compiler enforce that these aren't convertible to other opaque types. We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc, but I don't plan to do that in the short term. The one outstanding known problem with this patch is that we lose the bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to bitmangle the success bit into the low bit of DeclPtrTy. I will rectify this with a subsequent patch. llvm-svn: 67952 |
||
---|---|---|
.. | ||
ASTConsumers.cpp | ||
ASTConsumers.h | ||
Analyses.def | ||
AnalysisConsumer.cpp | ||
Backend.cpp | ||
CMakeLists.txt | ||
CacheTokens.cpp | ||
DependencyFile.cpp | ||
DiagChecker.cpp | ||
HTMLPrint.cpp | ||
Makefile | ||
PrintParserCallbacks.cpp | ||
PrintPreprocessedOutput.cpp | ||
RewriteBlocks.cpp | ||
RewriteMacros.cpp | ||
RewriteObjC.cpp | ||
RewriteTest.cpp | ||
SerializationTest.cpp | ||
Warnings.cpp | ||
clang.cpp | ||
clang.h |