Skip to content
  • Douglas Gregor's avatar
    Refactor the expression class hierarchy for casts. Most importantly: · e200adc5
    Douglas Gregor authored
      - CastExpr is the root of all casts
      - ImplicitCastExpr is (still) used for all explicit casts
      - ExplicitCastExpr is now the root of all *explicit* casts
      - ExplicitCCastExpr (new name needed!?) is a C-style cast in C or C++
      - CXXFunctionalCastExpr inherits from ExplicitCastExpr
      - CXXNamedCastExpr inherits from ExplicitCastExpr and is the root of all
        of the C++ named cast expression types (static_cast, dynamic_cast, etc.)
      - Added classes CXXStaticCastExpr, CXXDynamicCastExpr, 
        CXXReinterpretCastExpr, and CXXConstCastExpr to 
    
    Also, fixed returned-stack-addr.cpp, which broke once when we fixed
    reinterpret_cast to diagnose double->int* conversions and again when
    we eliminated implicit conversions to reference types. The fix is in
    both testcase and SemaChecking.cpp.
    
    Most of this patch is simply support for the renaming. There's very
    little actual change in semantics.
    
    llvm-svn: 58264
    e200adc5
Loading