It turns out that in C++ it is legal to declare functions
authorDuncan Sands <baldrick@free.fr>
Mon, 21 Jan 2008 21:37:41 +0000 (21:37 +0000)
committerDuncan Sands <baldrick@free.fr>
Mon, 21 Jan 2008 21:37:41 +0000 (21:37 +0000)
commit03531a4816c6b1a80322129d6f7c5d3ab06be7bf
tree5feff6902c72e4e71331820990312336ccc86cd6
parente5d53f5fe82079bc74dbb727b2f54d2b4fe44064
It turns out that in C++ it is legal to declare functions
that return an opaque type by value, as long as you don't
call it or provide a body (you can take the address of it).
So it is wrong to insist that sret parameters not be an
opaque*.  And I guess it is really up to codegen to complain
if someone tries to call such a function.  I'm also removing
the analogous check from byval parameters, since I don't
see why we shouldn't allow them as long as no-one tries to
call the function or give it a body.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46216 91177308-0d34-0410-b5e6-96231b3b80d8
lib/VMCore/ParameterAttributes.cpp