gollvm: restore -fno-show-column support

This was lost when converting to the new driver.

Change-Id: I46e1ec21780799b5dac6a1cb9f336d1ff3f2cc49
Reviewed-on: https://go-review.googlesource.com/123797
Reviewed-by: Than McIntosh <thanm@google.com>
diff --git a/bridge/go-llvm-diagnostics.cpp b/bridge/go-llvm-diagnostics.cpp
index e2d1b6d..d2c9825 100644
--- a/bridge/go-llvm-diagnostics.cpp
+++ b/bridge/go-llvm-diagnostics.cpp
@@ -21,12 +21,8 @@
 //   since diagnostics are designed to be filtered or suppressed in
 //   many cases.
 
-static llvm::cl::opt<bool>
-NoColumn("fno-show-column",
-         llvm::cl::desc("Do not print column numbers in diagnostics."),
-         llvm::cl::init(false));
-
 bool go_no_warn = false;
+bool go_loc_show_column = true;
 
 static unsigned error_count = 0;
 
@@ -59,7 +55,7 @@
   else {
     llvm::errs() << lm->location_file(loc) << ":"
                  << lm->location_line(loc);
-    if (!NoColumn)
+    if (go_loc_show_column)
       llvm::errs() << ":" << lm->location_column(loc);
   }
 }
diff --git a/bridge/go-llvm-diagnostics.h b/bridge/go-llvm-diagnostics.h
index 146293e..0e99fdf 100644
--- a/bridge/go-llvm-diagnostics.h
+++ b/bridge/go-llvm-diagnostics.h
@@ -15,5 +15,6 @@
 
 extern bool go_be_saw_errors();
 extern bool go_no_warn;
+extern bool go_loc_show_column;
 
 #endif // !defined(GO_LLVM_DIAGNOSTICS_H)
diff --git a/driver/CompileGo.cpp b/driver/CompileGo.cpp
index bb9219a..7af05eb 100644
--- a/driver/CompileGo.cpp
+++ b/driver/CompileGo.cpp
@@ -328,6 +328,10 @@
   }
 
   go_no_warn = args_.hasArg(gollvm::options::OPT_w);
+  go_loc_show_column =
+      driver_.reconcileOptionPair(gollvm::options::OPT_fshow_column,
+                                  gollvm::options::OPT_fno_show_column,
+                                  true);
 
   TargetOptions Options;
 
diff --git a/driver/GollvmOptions.td b/driver/GollvmOptions.td
index b1b1fd6..61a9fae 100644
--- a/driver/GollvmOptions.td
+++ b/driver/GollvmOptions.td
@@ -277,10 +277,16 @@
 def fno_omit_frame_pointer : Flag<["-"], "fno-omit-frame-pointer">, Group<f_Group>,
   HelpText<"Disallow elimination of frame pointer">;
 
+def fshow_column : Flag<["-"], "fshow-column">, Group<f_Group>,
+  HelpText<"Print column numbers in diagnostics">;
+
+def fno_show_column : Flag<["-"], "fno-show-column">, Group<f_Group>,
+  HelpText<"Do not print column numbers in diagnostics">;
+
 def fuse_ld_EQ : Joined<["-"], "fuse-ld=">, Group<f_Group>;
 
 def fdebug_prefix_map_EQ : Joined<["-"], "fdebug-prefix-map=">, Group<f_Group>,
-    HelpText<"remap file source paths in debug info">;
+  HelpText<"remap file source paths in debug info">;
 
 // Target-dependent "-m" options.
 
@@ -352,9 +358,6 @@
 def fno_diagnostics_show_caret : Flag<["-"], "fno-diagnostics-show-caret">,
     Flags<[Ignored]>, HelpText<"This option is ignored">;
 
-def fno_show_column : Flag<["-"], "fno-show-column">,
-    Flags<[Ignored]>, HelpText<"This option is ignored">;
-
 def fbounds_check : Flag<["-"], "fbounds-check">,
     Flags<[Ignored]>, HelpText<"This option is ignored">;