Use SectionBase for linker script expressions.

This is a small step for fixing pr32031, which needs expressions that
point to input sections.

llvm-svn: 297431
diff --git a/lld/ELF/LinkerScript.h b/lld/ELF/LinkerScript.h
index 829592e..b9dd3f7 100644
--- a/lld/ELF/LinkerScript.h
+++ b/lld/ELF/LinkerScript.h
@@ -36,6 +36,7 @@
 class OutputSection;
 class OutputSectionFactory;
 class InputSectionBase;
+class SectionBase;
 
 // This represents an expression in the linker script.
 // ScriptParser::readExpr reads an expression and returns an Expr.
@@ -47,13 +48,13 @@
 
   // If expression is section-relative the function below is used
   // to get the output section pointer.
-  std::function<OutputSection *()> Section;
+  std::function<SectionBase *()> Section;
 
   uint64_t operator()(uint64_t Dot) const { return Val(Dot); }
   operator bool() const { return (bool)Val; }
 
   Expr(std::function<uint64_t(uint64_t)> Val, std::function<bool()> IsAbsolute,
-       std::function<OutputSection *()> Section)
+       std::function<SectionBase *()> Section)
       : Val(Val), IsAbsolute(IsAbsolute), Section(Section) {}
   template <typename T>
   Expr(T V) : Expr(V, [] { return true; }, [] { return nullptr; }) {}