efriedma added a comment.

Added a few more minor comments.

It looks like the consensus on std-discussion is actually that your testcase 
has undefined behavior?  That seems like an awful conclusion, and the standard 
text doesn't really seem to support it. (I mean, I guess you could argue that " 
variable with thread storage duration shall be initialized before its first 
odr-use" means if it's not initialized, the behavior is undefined, but that's 
really confusing.)  But given that, I think we should submit a core issue, and 
hold off on merging this until we hear back from the committee.



================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:306
+  if (const auto *InitExpr = VD->getInit()) {
+    std::deque<const Stmt *> frontier;
+
----------------
If you don't care about the iteration order, using pop_back on a vector is 
faster.


================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:317
+          deps.insert(V);
+          auto V_Refs = enumerateVarInitDependencies(V);
+          deps.insert(V_Refs.begin(), V_Refs.end());
----------------
Do you need to recurse here?  It looks like the caller should handle that.


================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:469
+  for (const VarDecl *VD : UniqueVarsToInit)
+      OrderedVarInits.push_back(VD);
+
----------------
Indentation.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66122/new/

https://reviews.llvm.org/D66122



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

Reply via email to