aaron.ballman added inline comments.
================ Comment at: clang/test/AST/Interp/records.cpp:106 + +constexpr C RVOAndParams(const C *c) { + return C(); ---------------- tbaeder wrote: > aaron.ballman wrote: > > We're missing a fair amount of test coverage here in terms of calling > > member functions. Can you add some tests for that, as well as a test where > > the this pointer is invalid and causes UB? e.g., > > ``` > > struct S { > > constexpr void member() {} > > }; > > > > constexpr void func(S *s) { > > s->member(); // Should not be a constant expression > > } > > > > int main() { > > func(nullptr); > > } > > ``` > I just checked and we indeed don't reject that example. There are already > functions to detect such scenarios in `Interp.h/.cpp`. But actually using > them seems to require a bigger surgery since `Call`/`CallVoid` are currenly > in both `EvalEmitter.cpp` and `Interp.cpp`. > > I've written this down but I think for this patch it makes sense to add the > failing test case and ignore the failure for now. I'm okay with adding a failure test case with a fixme comment on it for now. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134699/new/ https://reviews.llvm.org/D134699 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits