aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/Object.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2015-06-24 06:05:20 +0000
committerBob Wilson <bob.wilson@apple.com>2015-06-24 06:05:20 +0000
commit63c931443defca2fb7fa2a54e2ec6933c2e731fe (patch)
tree27ed7d24c530dc9bc9870b7d02e035d818bcb1e8 /llvm/lib/Object/Object.cpp
parentee1247be7bce73037758e518162f18225254628f (diff)
downloadllvm-63c931443defca2fb7fa2a54e2ec6933c2e731fe.zip
llvm-63c931443defca2fb7fa2a54e2ec6933c2e731fe.tar.gz
llvm-63c931443defca2fb7fa2a54e2ec6933c2e731fe.tar.bz2
Move the special-case check from r240462 into ARM-specific code.
This fixes a serious bug in r240462: checking the BuiltinID for ARM::BI_MoveToCoprocessor* in EmitBuiltinExpr() ignores the fact that each target has an overlapping range of the BuiltinID values. That check can trigger for builtins from other targets, leading to very bad behavior. Part of the reason I did not implement r240462 this way to begin with is the special handling of the last argument for Neon builtins. In this change, I have factored out the check to see which builtins have that extra argument into a new HasExtraNeonArgument() function. There is still some awkwardness in having to check for those builtins in two separate places, i.e., once to see if the extra argument is present and once to generate the appropriate IR, but this seems much cleaner than my previous patch. llvm-svn: 240522
Diffstat (limited to 'llvm/lib/Object/Object.cpp')
0 files changed, 0 insertions, 0 deletions