NoQ added a comment.

Thanks!! Will try to look at the rest of the stuff as soon as possible><



================
Comment at: test/Analysis/iterator-past-end.cpp:3
+
+template <typename T, typename Ptr, typename Ref> struct __iterator {
+  typedef __iterator<T, T *, T &> iterator;
----------------
baloghadamsoftware wrote:
> NoQ wrote:
> > We should probably separate this into an #include-able header in 
> > `test/Analysis/Inputs/`.
> > 
> > Also, there's always a bit of concern that it wasn't copy-pasted from a 
> > standard library implementation with an incompatible license such as 
> > (L)GPL. Which often happens when you do your best to emulate the normal way 
> > of defining things as closely as possible.
> I did it now, but first one of my tests failed. I fixed the bug, but it 
> turned out that if I include these types and functions, no method or function 
> is checked, just conjured symbols are generated. Should including not behave 
> the same as copying the contents? This happened even if I removed the pragma.
Aha, i guess that's because we don't inline STL headers. See 
`mayInlineCXXStandardLibrary()` / `-analyzer-config c++-stdlib-inlining`.

The lesson to learn here is that it's a good idea to make tests as similar to 
real code as possible. Because on real code, it would probably also not be 
inlined.


https://reviews.llvm.org/D25660



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to