[PATCH] `nonnull` argument attribute.

Nick Lewycky nicholas at mxc.ca
Thu Apr 17 20:52:35 PDT 2014


Your change to lib/IR/Value.cpp is wrong, a nonnull pointer is not 
necessarily dereferenceable.

%a = inttoptr i32 123456 to i32*
call void @foo(i32* %a nonnull)

It's nonnull, but not dereferenceable.

Nick

Luqman Aden wrote:
>    Added test.
>
> http://reviews.llvm.org/D3389
>
> CHANGE SINCE LAST DIFF
>    http://reviews.llvm.org/D3389?vs=8552&id=8553#toc
>
> Files:
>    lib/AsmParser/LLToken.h
>    lib/AsmParser/LLParser.cpp
>    lib/AsmParser/LLLexer.cpp
>    lib/Bitcode/Writer/BitcodeWriter.cpp
>    lib/Bitcode/Reader/BitcodeReader.cpp
>    lib/IR/Function.cpp
>    lib/IR/Attributes.cpp
>    lib/Analysis/ValueTracking.cpp
>    test/Bitcode/attributes.ll
>    test/Analysis/BasicAA/nonnull.ll
>    include/llvm/Bitcode/LLVMBitCodes.h
>    include/llvm/IR/Attributes.h
>    include/llvm/IR/Argument.h
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list