================
Comment at: include/clang/Basic/DiagnosticDriverKinds.td:119-121
@@ -117,1 +118,5 @@
+  "%0 in '%1'">;
+def warn_drv_optimization_remark_missing_loc : Warning<"optimization remarks "
+  "will not show source location information (use -gline-tables-only "
+  "-gcolumn-info to enable it)">, InGroup<BackendOptimizationRemark>;
 
----------------
Richard Smith wrote:
> I think this would make more sense as a note on the diagnostic we produce, if 
> we ever actually produce one.
Oh, yeah, much better. Done. One question, however, this will cause the note to 
be emitted on every remark we print. Should I try to reduce the noise by making 
sure it's only emitted once?

================
Comment at: include/clang/Basic/DiagnosticFrontendKinds.td:35-42
@@ -34,1 +34,10 @@
 
+def err_fe_backend_optimization_remark: Remark<"%0">, CatBackend,
+    InGroup<BackendOptimizationRemark>;
+def warn_fe_backend_optimization_remark: Remark<"%0">, CatBackend,
+    InGroup<BackendOptimizationRemark>;
+def remark_fe_backend_optimization_remark: Remark<"%0">, CatBackend,
+    InGroup<BackendOptimizationRemark>, DefaultRemark;
+def note_fe_backend_optimization_remark: Remark<"%0">, CatBackend,
+    InGroup<BackendOptimizationRemark>;
+
----------------
Richard Smith wrote:
> I assume that these shouldn't all be `Remark`s?
> 
> `Note`s should not have an `InGroup`.
> 
> Please put a space to the left of the `:` (this file is inconsistent on this, 
> but spaces on both sides is the established convention elsewhere).
> 
> Are you actually using any of these except for the `remark_...` form?
I fixed them to be the right type. They are not really used, except by the 
boilerplate macro ComputeDiagRemarkID() in lib/CodeGen/CodeGenAction.cpp. I 
replicated the behaviour of all the other handlers. I am not really sure what 
they are supposed to do.

================
Comment at: include/clang/Driver/Options.td:259
@@ -257,1 +258,3 @@
+  HelpText<"Report transformations performed by optimization passes whose "
+           "name matches the given POSIX regular expression.">;
 def S : Flag<["-"], "S">, Flags<[DriverOption,CC1Option]>, Group<Action_Group>,
----------------
Richard Smith wrote:
> No full stop here, please. (I think we're inconsistent on this too.)
Done.

================
Comment at: lib/Frontend/CompilerInvocation.cpp:526
@@ +525,3 @@
+    std::string RegexError;
+    Opts.OptimizationRemarkPattern = new llvm::Regex(Val);
+    if (!Opts.OptimizationRemarkPattern->isValid(RegexError)) {
----------------
Richard Smith wrote:
> It looks like this is leaked. Maybe use an `llvm::Optional<llvm::Regex>` 
> instead?
I tried but llvm::Regex has an explicitly deleted constructor. I'm not sure how 
to deal with that, so I ended up using regular pointer semantics.


http://reviews.llvm.org/D3226



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to