Skip to content
  • Douglas Gregor's avatar
    Add a new expression node, CXXOperatorCallExpr, which expresses a · 993603d8
    Douglas Gregor authored
    function call created in response to the use of operator syntax that
    resolves to an overloaded operator in C++, e.g., "str1 +
    str2" that resolves to std::operator+(str1, str2)". We now build a
    CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But
    only for binary operators, where we actually implement overloading)
    
    I decided *not* to refactor the current CallExpr to make it abstract
    (with FunctionCallExpr and CXXOperatorCallExpr as derived
    classes). Doing so would allow us to make CXXOperatorCallExpr a little
    bit smaller, at the cost of making the argument and callee accessors
    virtual. We won't know if this is going to be a win until we can parse
    lots of C++ code to determine how much memory we'll save by making
    this change vs. the performance penalty due to the extra virtual
    calls.
    
    llvm-svn: 59306
    993603d8
Loading