diff --git a/clang/tools/clang-cc/Options.cpp b/clang/tools/clang-cc/Options.cpp
index 4733353..56f77c6 100644
--- a/clang/tools/clang-cc/Options.cpp
+++ b/clang/tools/clang-cc/Options.cpp
@@ -124,25 +124,6 @@
 
 }
 
-void clang::InitializeAnalyzerOptions(AnalyzerOptions &Opts) {
-  using namespace analyzeroptions;
-  Opts.AnalysisList = AnalysisList;
-  Opts.AnalysisStoreOpt = AnalysisStoreOpt;
-  Opts.AnalysisConstraintsOpt = AnalysisConstraintsOpt;
-  Opts.AnalysisDiagOpt = AnalysisDiagOpt;
-  Opts.VisualizeEGDot = VisualizeEGDot;
-  Opts.VisualizeEGUbi = VisualizeEGUbi;
-  Opts.AnalyzeAll = AnalyzeAll;
-  Opts.AnalyzerDisplayProgress = AnalyzerDisplayProgress;
-  Opts.PurgeDead = PurgeDead;
-  Opts.EagerlyAssume = EagerlyAssume;
-  Opts.AnalyzeSpecificFunction = AnalyzeSpecificFunction;
-  Opts.EnableExperimentalChecks = AnalyzerExperimentalChecks;
-  Opts.EnableExperimentalInternalChecks = AnalyzerExperimentalInternalChecks;
-  Opts.TrimGraph = TrimGraph;
-}
-
-
 //===----------------------------------------------------------------------===//
 // Code Generation Options
 //===----------------------------------------------------------------------===//
@@ -807,6 +788,24 @@
 // Option Object Construction
 //===----------------------------------------------------------------------===//
 
+void clang::InitializeAnalyzerOptions(AnalyzerOptions &Opts) {
+  using namespace analyzeroptions;
+  Opts.AnalysisList = AnalysisList;
+  Opts.AnalysisStoreOpt = AnalysisStoreOpt;
+  Opts.AnalysisConstraintsOpt = AnalysisConstraintsOpt;
+  Opts.AnalysisDiagOpt = AnalysisDiagOpt;
+  Opts.VisualizeEGDot = VisualizeEGDot;
+  Opts.VisualizeEGUbi = VisualizeEGUbi;
+  Opts.AnalyzeAll = AnalyzeAll;
+  Opts.AnalyzerDisplayProgress = AnalyzerDisplayProgress;
+  Opts.PurgeDead = PurgeDead;
+  Opts.EagerlyAssume = EagerlyAssume;
+  Opts.AnalyzeSpecificFunction = AnalyzeSpecificFunction;
+  Opts.EnableExperimentalChecks = AnalyzerExperimentalChecks;
+  Opts.EnableExperimentalInternalChecks = AnalyzerExperimentalInternalChecks;
+  Opts.TrimGraph = TrimGraph;
+}
+
 void clang::InitializeCodeGenOptions(CodeGenOptions &Opts,
                                      const LangOptions &Lang,
                                      bool TimePasses) {
