Remove verifier check that attribute 'builtin' is only applied to calls to

functions marked 'nobuiltin'. That approach doesn't play well with LTO, and
there's no harm in marking a call as 'builtin' if it was going to be a builtin
regardless.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190233 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Smith 2013-09-07 00:25:48 +00:00
parent 1abf0afdd4
commit 9401181aed
2 changed files with 0 additions and 10 deletions

View File

@ -1553,14 +1553,6 @@ void Verifier::VerifyCallSite(CallSite CS) {
"Function has metadata parameter but isn't an intrinsic", I);
}
// If the call site has the 'builtin' attribute, verify that it's applied to a
// direct call to a function with the 'nobuiltin' attribute.
if (CS.hasFnAttr(Attribute::Builtin))
Assert1(CS.getCalledFunction() &&
CS.getCalledFunction()->hasFnAttribute(Attribute::NoBuiltin),
"Attribute 'builtin' can only be used in a call to a function with "
"the 'nobuiltin' attribute.", I);
visitInstruction(*I);
}

View File

@ -28,8 +28,6 @@ define i8* @bar(i8* %x) {
; RUN: not llvm-as <%s 2>&1 | FileCheck -check-prefix=CHECK-BAD %s
; CHECK-BAD: Attribute 'builtin' can only be used in a call to a function with the 'nobuiltin' attribute.
; CHECK-BAD-NEXT: %y = call i8* @lar(i8* %x) #1
; CHECK-BAD: Attribute 'builtin' can only be applied to a callsite.
; CHECK-BAD-NEXT: i8* (i8*)* @car
; CHECK-BAD: Attribute 'builtin' can only be applied to a callsite.