#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *, int, int, char *, int /*<<< orphan*/, char *,
                          int, int, int, int, int, char *);
int main(int argc, char *argv[]) {
  (void)printf(
      "*+\n*  Name:\n*     DAT_PAR\n\n*  Purpose:\n*     Define public global "
      "constants for the DAT_ and HDS_ routines.\n\n*  Language:\n*     "
      "Starlink Fortran 77\n\n*  Type of Module:\n*     Global constants "
      "include file.\n\n*  Description:\n*     This file contains definitions "
      "of global constants which are used\n*     by the DAT_ and HDS_ routines "
      "within the HDS package and which\n*     may also be needed by software "
      "which calls these routines.\n\n*  Copyright:\n*     Copyright (C) 1998 "
      "Central Laboratory of the Research Councils\n\n*  Authors:\n*     "
      "Generated automatically by the dat_par_f program.\n*     "
      "{enter_new_authors_here}\n\n*  History:\n*     "
      "{enter_changes_here}\n\n*-\n\n*  Global Constants:\n\n*  Maximum number "
      "of object dimensions.\n      INTEGER DAT__MXDIM\n      PARAMETER ( "
      "DAT__MXDIM = %d )\n\n*  Size of locator.\n      INTEGER DAT__SZLOC\n    "
      "  PARAMETER ( DAT__SZLOC = %d )\n\n*  Null (invalid) locator value.\n   "
      "   CHARACTER * ( DAT__SZLOC ) DAT__NOLOC\n      PARAMETER ( DAT__NOLOC "
      "= \'%s\' )\n\n*  Null wild-card search context.\n      INTEGER "
      "DAT__NOWLD\n      PARAMETER ( DAT__NOWLD = %d )\n\n*  Root locator "
      "value.\n      CHARACTER * ( DAT__SZLOC ) DAT__ROOT\n      PARAMETER ( "
      "DAT__ROOT  = \'%s\' )\n\n*  Size of group name.\n      INTEGER "
      "DAT__SZGRP\n      PARAMETER ( DAT__SZGRP = %d )\n\n*  Size of access "
      "mode string.\n      INTEGER DAT__SZMOD\n      PARAMETER ( DAT__SZMOD = "
      "%d )\n\n*  Size of object name.\n      INTEGER DAT__SZNAM\n      "
      "PARAMETER ( DAT__SZNAM = %d )\n\n*  Size of type string.\n      INTEGER "
      "DAT__SZTYP\n      PARAMETER ( DAT__SZTYP = %d )\n\n*  Size of file "
      "extension.\n      INTEGER DAT__SZFLX\n      PARAMETER ( DAT__SZFLX = %d "
      ")\n\n*  Default file extension for HDS files.\n      CHARACTER * ( "
      "DAT__SZFLX ) DAT__FLEXT\n      PARAMETER ( DAT__FLEXT = \'%s\' "
      ")\n\n*.\n",
      7, 16, "<NOT A LOCATOR> ", 0, "<ROOT LOCATOR>  ", 15, 15, 15, 15, 4,
      ".sdf");
  exit(0);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
lea    0xec3(%rip),%rdi
mov    $0x7,%esi
mov    $0x10,%edx
lea    0x1585(%rip),%rcx
xor    %r8d,%r8d
lea    0x158c(%rip),%r9
lea    0x1596(%rip),%rax
movl   $0xf,(%rsp)
movl   $0xf,0x8(%rsp)
movl   $0xf,0x10(%rsp)
movl   $0xf,0x18(%rsp)
movl   $0x4,0x20(%rsp)
mov    %rax,0x28(%rsp)
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0x15cd(%rip),%rax
lea    0xed1(%rip),%rdi
lea    0x159d(%rip),%rcx
lea    0x15a7(%rip),%r9
mov    $0x7,%esi
mov    $0x10,%edx
xor    %r8d,%r8d
push   %rax
push   $0x4
push   $0xf
push   $0xf
push   $0xf
push   $0xf
call   1030 <printf@plt>
add    $0x30,%rsp
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [1747 x i8] c"*+\0A* Name:\0A* DAT_PAR\0A\0A* Purpose:\0A* Define public global constants for the DAT_ and HDS_ routines.\0A\0A* Language:\0A* Starlink Fortran 77\0A\0A* Type of Module:\0A* Global constants include file.\0A\0A* Description:\0A* This file contains definitions of global constants which are used\0A* by the DAT_ and HDS_ routines within the HDS package and which\0A* may also be needed by software which calls these routines.\0A\0A* Copyright:\0A* Copyright (C) 1998 Central Laboratory of the Research Councils\0A\0A* Authors:\0A* Generated automatically by the dat_par_f program.\0A* {enter_new_authors_here}\0A\0A* History:\0A* {enter_changes_here}\0A\0A*-\0A\0A* Global Constants:\0A\0A* Maximum number of object dimensions.\0A INTEGER DAT__MXDIM\0A PARAMETER ( DAT__MXDIM = %d )\0A\0A* Size of locator.\0A INTEGER DAT__SZLOC\0A PARAMETER ( DAT__SZLOC = %d )\0A\0A* Null (invalid) locator value.\0A CHARACTER * ( DAT__SZLOC ) DAT__NOLOC\0A PARAMETER ( DAT__NOLOC = '%s' )\0A\0A* Null wild-card search context.\0A INTEGER DAT__NOWLD\0A PARAMETER ( DAT__NOWLD = %d )\0A\0A* Root locator value.\0A CHARACTER * ( DAT__SZLOC ) DAT__ROOT\0A PARAMETER ( DAT__ROOT = '%s' )\0A\0A* Size of group name.\0A INTEGER DAT__SZGRP\0A PARAMETER ( DAT__SZGRP = %d )\0A\0A* Size of access mode string.\0A INTEGER DAT__SZMOD\0A PARAMETER ( DAT__SZMOD = %d )\0A\0A* Size of object name.\0A INTEGER DAT__SZNAM\0A PARAMETER ( DAT__SZNAM = %d )\0A\0A* Size of type string.\0A INTEGER DAT__SZTYP\0A PARAMETER ( DAT__SZTYP = %d )\0A\0A* Size of file extension.\0A INTEGER DAT__SZFLX\0A PARAMETER ( DAT__SZFLX = %d )\0A\0A* Default file extension for HDS files.\0A CHARACTER * ( DAT__SZFLX ) DAT__FLEXT\0A PARAMETER ( DAT__FLEXT = '%s' )\0A\0A*.\0A\00"
@.str.1 = [17 x i8] c"<NOT A LOCATOR> \00"
@.str.2 = [17 x i8] c"<ROOT LOCATOR> \00"
@.str.3 = [5 x i8] c".sdf\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%6 = call i32 @printf(i8* getelementptr inbounds ([1747 x i8], [1747 x i8]* @.str, i64 0, i64 0), i32 7, i32 16, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0), i32 15, i32 15, i32 15, i32 15, i32 4, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%7 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@.str = [1747 x i8] c"*+\0A* Name:\0A* DAT_PAR\0A\0A* Purpose:\0A* Define public global constants for the DAT_ and HDS_ routines.\0A\0A* Language:\0A* Starlink Fortran 77\0A\0A* Type of Module:\0A* Global constants include file.\0A\0A* Description:\0A* This file contains definitions of global constants which are used\0A* by the DAT_ and HDS_ routines within the HDS package and which\0A* may also be needed by software which calls these routines.\0A\0A* Copyright:\0A* Copyright (C) 1998 Central Laboratory of the Research Councils\0A\0A* Authors:\0A* Generated automatically by the dat_par_f program.\0A* {enter_new_authors_here}\0A\0A* History:\0A* {enter_changes_here}\0A\0A*-\0A\0A* Global Constants:\0A\0A* Maximum number of object dimensions.\0A INTEGER DAT__MXDIM\0A PARAMETER ( DAT__MXDIM = %d )\0A\0A* Size of locator.\0A INTEGER DAT__SZLOC\0A PARAMETER ( DAT__SZLOC = %d )\0A\0A* Null (invalid) locator value.\0A CHARACTER * ( DAT__SZLOC ) DAT__NOLOC\0A PARAMETER ( DAT__NOLOC = '%s' )\0A\0A* Null wild-card search context.\0A INTEGER DAT__NOWLD\0A PARAMETER ( DAT__NOWLD = %d )\0A\0A* Root locator value.\0A CHARACTER * ( DAT__SZLOC ) DAT__ROOT\0A PARAMETER ( DAT__ROOT = '%s' )\0A\0A* Size of group name.\0A INTEGER DAT__SZGRP\0A PARAMETER ( DAT__SZGRP = %d )\0A\0A* Size of access mode string.\0A INTEGER DAT__SZMOD\0A PARAMETER ( DAT__SZMOD = %d )\0A\0A* Size of object name.\0A INTEGER DAT__SZNAM\0A PARAMETER ( DAT__SZNAM = %d )\0A\0A* Size of type string.\0A INTEGER DAT__SZTYP\0A PARAMETER ( DAT__SZTYP = %d )\0A\0A* Size of file extension.\0A INTEGER DAT__SZFLX\0A PARAMETER ( DAT__SZFLX = %d )\0A\0A* Default file extension for HDS files.\0A CHARACTER * ( DAT__SZFLX ) DAT__FLEXT\0A PARAMETER ( DAT__FLEXT = '%s' )\0A\0A*.\0A\00"
@.str.1 = [17 x i8] c"<NOT A LOCATOR> \00"
@.str.2 = [17 x i8] c"<ROOT LOCATOR> \00"
@.str.3 = [5 x i8] c".sdf\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call i32 @printf(i8* getelementptr inbounds ([1747 x i8], [1747 x i8]* @.str, i64 0, i64 0), i32 7, i32 16, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.2, i64 0, i64 0), i32 15, i32 15, i32 15, i32 15, i32 4, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%4 = tail call i32 @exit(i32 0)
unreachable
}