Remove Sema includes from Analysis code to fix layering

This moves a header-only class from Sema to Analysis and puts the option
check in Sema.

Patch by Chris Wailes!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188230 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp
index 19fc29b..54b791e 100644
--- a/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/lib/Sema/AnalysisBasedWarnings.cpp
@@ -1557,8 +1557,10 @@
   DefaultPolicy.enableThreadSafetyAnalysis = (unsigned)
     (D.getDiagnosticLevel(diag::warn_double_lock, SourceLocation()) !=
      DiagnosticsEngine::Ignored);
-  DefaultPolicy.enableConsumedAnalysis = consumed::checkEnabled(D);
-
+  DefaultPolicy.enableConsumedAnalysis =
+      (unsigned)(D.getDiagnosticLevel(diag::warn_use_while_consumed,
+                                      SourceLocation()) !=
+                 DiagnosticsEngine::Ignored);
 }
 
 static void flushDiagnostics(Sema &S, sema::FunctionScopeInfo *fscope) {
@@ -1727,7 +1729,7 @@
   // Check for violations of consumed properties.
   if (P.enableConsumedAnalysis) {
     consumed::ConsumedWarningsHandler WarningHandler(S);
-    consumed::ConsumedAnalyzer Analyzer(S, WarningHandler);
+    consumed::ConsumedAnalyzer Analyzer(WarningHandler);
     Analyzer.run(AC);
   }