]> granicus.if.org Git - clang/commit
Use is.constant intrinsic for __builtin_constant_p
authorBill Wendling <isanbard@gmail.com>
Tue, 20 Nov 2018 08:53:30 +0000 (08:53 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 20 Nov 2018 08:53:30 +0000 (08:53 +0000)
commitdafd68092ceda14b5b4a24fabef35bec783876a7
treef4e1e4c0dd0943065338a25387fb4372011b33db
parent9b9f33d2fa56d4637b1da517d34f65e512c578b1
Use is.constant intrinsic for __builtin_constant_p

Summary:
A __builtin_constant_p may end up with a constant after inlining. Use
the is.constant intrinsic if it's a variable that's in a context where
it may resolve to a constant, e.g., an argument to a function after
inlining.

Reviewers: rsmith, shafik

Subscribers: jfb, kristina, cfe-commits, nickdesaulniers, jyknight

Differential Revision: https://reviews.llvm.org/D54355

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@347294 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/clang/AST/Expr.h
lib/AST/ASTImporter.cpp
lib/AST/Expr.cpp
lib/AST/ExprConstant.cpp
lib/CodeGen/CGBuiltin.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaTemplateDeduction.cpp
lib/Sema/SemaType.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
test/Analysis/builtin-functions.cpp
test/Sema/builtins.c
test/SemaCXX/compound-literal.cpp