MdePkg: avoid __builtin_unreachable() on GCC v4.4

GCC v4.4 does not implement __builtin_unreachable(), so avoid using
it when building with this version or earlier.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-By: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
diff --git a/MdePkg/Include/Base.h b/MdePkg/Include/Base.h
index 8583858..7dbf938 100644
--- a/MdePkg/Include/Base.h
+++ b/MdePkg/Include/Base.h
@@ -89,10 +89,11 @@
 // warnings.

 //

 #ifndef UNREACHABLE

-  #ifdef __GNUC__

+  #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)

     ///

     /// Signal compilers and analyzers that this call is not reachable.  It is

     /// up to the compiler to remove any code past that point.

+    /// Not implemented by GCC 4.4 or earlier.

     ///

     #define UNREACHABLE()  __builtin_unreachable ()

   #elif defined (__has_feature)