This patch adds Fortran specific semantic checks for the OpenMP allocate
directive.
Due to an issue in the parser (described in https://reviews.llvm.org/D93549/new/)
the checks: "List items specified in an allocate directive that is
associated with an allocate statement must be variables that are allocated
by the allocate statement" and "Multiple directives can only be associated
with an allocate statement if list items are specified on each allocate directive"
cannot be implemented yet.
I have used code written as part of https://reviews.llvm.org/D93549/new/
as a basis for the implementations of these checks.
Nit: Use braced initialization.