[llvm-dev] cross-checking external declarations / debug info for declarations

Adrian Prantl via llvm-dev llvm-dev at lists.llvm.org
Fri Dec 9 09:00:39 PST 2016


> On Dec 8, 2016, at 7:43 AM, David Callahan via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> I am interested in putting together a tool which can verify that an external declaration conforms with the actual definition.
> 
> A.c:
> extern int32_t foo();
> Int bar() { return foo(); }
> 
> B.c:
> int64_t foo() {  … } 
> 
> I had thought that I could use the debug information but the debug information in A.o does not include the type of the declaration “foo”, just the type of bar.
> 
> Is there a way to include declarations as well as definitions such as a above? It appears there is a notion of “retained” types, perhaps I add a flag to retain declarations? 

You should take a look at

https://reviews.llvm.org/D18565

which implements (almost?) all that you're asking for.

-- adrian

> 
> Perhaps a different approach?
> 
> Thanks
> —david
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list