diff options
Diffstat (limited to 'clang/lib/AST/ByteCode/Compiler.cpp')
-rw-r--r-- | clang/lib/AST/ByteCode/Compiler.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp index 07e8712..c7fb5e8 100644 --- a/clang/lib/AST/ByteCode/Compiler.cpp +++ b/clang/lib/AST/ByteCode/Compiler.cpp @@ -4874,10 +4874,13 @@ bool Compiler<Emitter>::VisitBuiltinCallExpr(const CallExpr *E, template <class Emitter> bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) { - if (unsigned BuiltinID = E->getBuiltinCallee()) - return VisitBuiltinCallExpr(E, BuiltinID); - const FunctionDecl *FuncDecl = E->getDirectCallee(); + + if (FuncDecl) { + if (unsigned BuiltinID = FuncDecl->getBuiltinID()) + return VisitBuiltinCallExpr(E, BuiltinID); + } + // Calls to replaceable operator new/operator delete. if (FuncDecl && FuncDecl->isUsableAsGlobalAllocationFunctionInConstantEvaluation()) { |