aaron.ballman added a comment. Thank you for working on this! I have a few more test cases to try, but I think you're already handling them properly.
================ Comment at: test/clang-tidy/cert-static-object-exception.cpp:29 + X(S = {}) noexcept; +}; + ---------------- We should also have a test for implicitly-provided constructors, since those are `noexcept` if the data members all have `noexcept` constructors. Something like: ``` struct Y { S s; }; Y y; // Diagnose struct Z { T t; }; Z z; // Do not diagnose ``` ================ Comment at: test/clang-tidy/cert-static-object-exception.cpp:60 +// CHECK-MESSAGES: 32:5: note: possibly throwing function declared here +int k = h(); ---------------- Let's also make sure that we're properly catching conversion operators with a test like: ``` struct UserConv_Bad { operator int() noexcept(false); }; struct UserConv_Good { operator int() noexcept; }; UserConv_Bad some_bad_func(); UserConv_Good some_good_func(); int l = some_bad_func(); // Diagnose int m = some_good_func(); // Do not diagnose ``` https://reviews.llvm.org/D25925 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits