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

Hyeongyu Kim via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Nov 14 17:29:39 PST 2021

hyeongyukim added a comment.

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.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list