[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.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list