[llvm] r259973 - Relax assertion in ReplaceableMetadataImpl::replaceAllUsesWith().

Adrian Prantl via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 8 09:08:59 PST 2016


Thanks, I added a unit test for replacing a temporary node with another one in r260111.

-- adrian

> On Feb 6, 2016, at 12:41 PM, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> 
> Can you add a unit test for this?  I think it's fine to remove the
> assertion (since you found a legitimate use), but I think it should
> be tested locally in LLVM.  IIRC, unittests/IR/MetadataTest.cpp has
> a lot of stuff like this.
> 
>> On 2016-Feb-05, at 17:56, Adrian Prantl via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>> 
>> Author: adrian
>> Date: Fri Feb  5 19:56:55 2016
>> New Revision: 259973
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=259973&view=rev
>> Log:
>> Relax assertion in ReplaceableMetadataImpl::replaceAllUsesWith().
>> There is a legitimate use-case in clang where we need to replace a
>> temporary placeholder node with the temporary node that may be a
>> forward declaration.
>> 
>> <rdar://problem/24493203>
>> 
>> Modified:
>>   llvm/trunk/lib/IR/Metadata.cpp
>> 
>> Modified: llvm/trunk/lib/IR/Metadata.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=259973&r1=259972&r2=259973&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/IR/Metadata.cpp (original)
>> +++ llvm/trunk/lib/IR/Metadata.cpp Fri Feb  5 19:56:55 2016
>> @@ -188,8 +188,6 @@ void ReplaceableMetadataImpl::moveRef(vo
>> }
>> 
>> void ReplaceableMetadataImpl::replaceAllUsesWith(Metadata *MD) {
>> -  assert(!(MD && isa<MDNode>(MD) && cast<MDNode>(MD)->isTemporary()) &&
>> -         "Expected non-temp node");
>>  assert(CanReplace &&
>>         "Attempted to replace Metadata marked for no replacement");
>> 
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> 



More information about the llvm-commits mailing list