[PATCH] D105169: [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 29 06:56:02 PST 2021


erichkeane added a comment.

In D105169#3130355 <https://reviews.llvm.org/D105169#3130355>, @hyeongyukim wrote:

> In D105169#3115814 <https://reviews.llvm.org/D105169#3115814>, @erichkeane wrote:
>
>> Either this or D108453 <https://reviews.llvm.org/D108453> (which were committed together!) caused this assert according to my git-bisect: https://godbolt.org/z/4rqYKfW7K
>>
>> NOTE that this fails in a lit-test for me, clang CodeGen/ifunc.c (though my downstream seems to run the verifier even with -emit-llvm, so you might need to just swap it to an -emit-obj to get this to repro).
>
> The lit-test failure of CodeGen/ifunc.c was not directly related to this patch.
> `emitIFuncDefinition` was creating an incorrect function attribute.
> It added the noundef attribute to the function even though there are no parameters (`foo_ifunc` function of `ifunc.c`), and it was fixed a few days ago.
>
> The patch that solved this problem is D113352 <https://reviews.llvm.org/D113352>.
>
>> The `emitIFuncDefinition` fucntion incorrectly passes the GlobalDecl of the IFunc itself to the call to GetOrCreateLLVMFunction for creating the resolver, which causes it to be created with a wrong attribute list, which fails `Verifier::visitFunction` with "Attribute after last parameter!". You'll note that unlike the relationship between aliases and their aliasees, the resolver and the ifunc have different types - the resolver takes no parameters.

Thanks for the update!  Sorry for the late response, i was on vacation the last two weeks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105169/new/

https://reviews.llvm.org/D105169



More information about the cfe-commits mailing list