code: def check_long_double_representation(cmd):
      cmd._check_compiler()
      body = LONG_DOUBLE_REPRESENTATION_SRC % {"type": "long double"}
  
      # Disable whole program optimization (the default on vs2015, with python 3.5+)
      # which generates intermediary object files and prevents checking the
      # float representation.
      if sys.platform == "win32" and not mingw32():
          try:
              cmd.compiler.compile_options.remove("/GL")
          except (AttributeError, ValueError):
              pass
  
      # Disable multi-file interprocedural optimization in the Intel compiler on Linux
      # which generates intermediary object files and prevents checking the
      # float representation.
      elif (
          sys.platform != "win32"
          and cmd.compiler.compiler_type.startswith("intel")
          and "-ipo" in cmd.compiler.cc_exe
      ):
          newcompiler = cmd.compiler.cc_exe.replace(" -ipo", "")
          cmd.compiler.set_executables(
              compiler=newcompiler,
              compiler_so=newcompiler,
              compiler_cxx=newcompiler,
              linker_exe=newcompiler,
              linker_so=newcompiler + " -shared",
          )
  
      # We need to use _compile because we need the object filename
      src, obj = cmd._compile(body, None, None, "c")
      try:
          ltype = long_double_representation(pyod(obj))
          return ltype
      except ValueError:
          # try linking to support CC="gcc -flto" or icc -ipo
          # struct needs to be volatile so it isn't optimized away
          # additionally "clang -flto" requires the foo struct to be used
          body = body.replace("struct", "volatile struct")
          body += "int main(void) { return foo.before[0]; }\n"
          src, obj = cmd._compile(body, None, None, "c")
          cmd.temp_files.append("_configtest")
          cmd.compiler.link_executable([obj], "_configtest")
          ltype = long_double_representation(pyod("_configtest"))
          return ltype
      finally:
          cmd._clean()
  
file_path: catboost/contrib/python/numpy/py3/numpy/core/setup_common.py
imports: import copy
  import pathlib
  import sys
  import textwrap
  from numpy.distutils.misc_util import mingw32
label_desc: Use image node_id 7 for calling a global function with example usage: check_long_double_representation(cmd) and returns: ltype, ltype