ychen added inline comments.

================
Comment at: clang/lib/Frontend/CompilerInvocation.cpp:4313
+    // 253402300799 is the UNIX timestamp of 9999-12-31T23:59:59Z.
+    if (StringRef(Epoch).getAsInteger(10, V) || V > 253402300799)
+      Diags.Report(diag::err_fe_invalid_source_date_epoch) << Epoch;
----------------
The time_t value may be negative and its value range is platform-dependent. It 
is better to be as transparent as possible. gmtime/localtime should be able to 
do the check by returning nullptr.

getAsInteger could handle V as time_t directly.


================
Comment at: clang/lib/Lex/PPMacroExpansion.cpp:1092
+    TT = *PP.getPreprocessorOpts().SourceDateEpoch;
+    TM = std::gmtime(&TT);
+  } else {
----------------
Why not use localtime as the else branch?

As mentioned above, diagnose null TM here or when parsing the user-specifed 
value. A small trade-off to make, up to you.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D135045

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

Reply via email to