[llvm] r246327 - DI: Require subprogram definitions to be distinct

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 11 16:26:08 PST 2016


On Fri, Aug 28, 2015 at 1:26 PM, Duncan P. N. Exon Smith via
llvm-commits <llvm-commits at lists.llvm.org> wrote:
> Author: dexonsmith
> Date: Fri Aug 28 15:26:49 2015
> New Revision: 246327
>
> URL: http://llvm.org/viewvc/llvm-project?rev=246327&view=rev
> Log:
> DI: Require subprogram definitions to be distinct
>
> As a follow-up to r246098, require `DISubprogram` definitions
> (`isDefinition: true`) to be 'distinct'.  Specifically, add an assembler
> check, a verifier check, and bitcode upgrading logic to combat testcase
> bitrot after the `DIBuilder` change.
>
> While working on the testcases, I realized that
> test/Linker/subprogram-linkonce-weak-odr.ll isn't relevant anymore.  Its
> purpose was to check for a corner case in PR22792 where two subprogram
> definitions match exactly and share the same metadata node.  The new
> verifier check, requiring that subprogram definitions are 'distinct',
> precludes that possibility.
>
> I updated almost all the IR with the following script:
>
>     git grep -l -E -e '= !DISubprogram\(.* isDefinition: true' |
>     grep -v test/Bitcode |
>     xargs sed -i '' -e 's/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/'
>
> Likely some variant of would work for out-of-tree testcases.

Might be worth mentioning in the release notes?

Thanks,
Hans


More information about the llvm-commits mailing list