#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*/ printa(char **);
void help_task() {
  char *msg[] = {
      "In Pit a task belongs to a project and projects can have many tasks. "
      "Task attributes include name, status,",
      "priority, date, and time. All attributes except the name are "
      "optional.\n",
      "Creating a task:\n",
      "   pit task -c name [-s status] [-p priority] [-d date] [-t time]\n",
      "Editing a task:\n",
      "   pit task -e [number] [-n name] [-s status] [-p priority] [-d date] "
      "[-t time]\n",
      "Moving a task:\n",
      "   pit task -m [number] -p number\n",
      "Deleting a task:\n",
      "   pit task -d [number]\n",
      "Viewing a task:\n",
      "   pit task [[-q] number]\n",
      "Searching tasks:\n",
      "   pit task -q [number | [-n name] [-s status] [-p priority] [-d "
      "date-from] [-D date-to] [-t time-min] [-T time-max]]\n",
      "Supported date formats:\n",
      "   none, 4/26, 4/26/2012, 4/26/12, '4/26 3pm', '4/26 19:30', '4/26/2012 "
      "3:15am', '4/26/12 17:00'",
      "   'Apr 26', 'Apr 26, 2012', 'Apr 26 3pm', 'Apr 26 19:30', 'Apr 26, 12 "
      "3:15am', 'Apr 26, 2012 17:00'\n",
      "Supported time formats:\n",
      "   none, 17, 17:00, 17:30, 5pm, 1:15am\n",
      "Examples:\n",
      "   $ pit task -c 'Hack this'",
      "   created task 1/1: Hack this (status: open, priority: normal)\n",
      "   $ pit task -c 'And hack that' -s new -p urgent -d 'Dec 31'",
      "   created task 2/1: And hack that (status: new, priority: urgent, "
      "date: Dec 31, 2010)\n",
      "   $ pit t",
      "     1: (username) [open] [normal]              Hack this     (0 notes)",
      "   * 2: (username) [new ] [urgent] Dec 31, 2010 And hack that (0 "
      "notes)\n",
      "   $ pit t -e 1 -s done -d 10/10 -t 4:30",
      "   updated task 1: Hack that (status: done, date: Oct 10, 2010, time: "
      "4:30)\n",
      "   $ pit t",
      "     1: (username) [done] [normal] Oct 10, 2010 4:30 Hack this     (0 "
      "notes)",
      "   * 2: (username) [new]  [urgent] Dec 31, 2010      And hack that (0 "
      "notes)\n",
      "   $ pit t -d",
      "   deleted task 2: And hack that\n",
      "   $ pit t",
      "   1: (username) [done] [normal] Oct 10, 2010 4:30 Hack this (0 "
      "notes)\n",
      NULL};
  printa(msg);
}


x86 assembly (clang, -O0):
<help_task>:
push   %rbp
mov    %rsp,%rbp
sub    $0x130,%rsp
lea    -0x130(%rbp),%rdi
lea    0x2bb7(%rip),%rsi
mov    $0x128,%edx
call   1030 <memcpy@plt>
lea    -0x130(%rbp),%rdi
call   1040 <printa@plt>
add    $0x130,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<help_task>:
push   %rbx
sub    $0x130,%rsp
lea    0x2bc1(%rip),%rsi
mov    %rsp,%rbx
mov    $0x128,%edx
mov    %rbx,%rdi
call   1030 <memcpy@plt>
mov    %rbx,%rdi
call   1040 <printa@plt>
add    $0x130,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [107 x i8] c"In Pit a task belongs to a project and projects can have many tasks. Task attributes include name, status,\00"
@.str.1 = [72 x i8] c"priority, date, and time. All attributes except the name are optional.\0A\00"
@.str.2 = [18 x i8] c"Creating a task:\0A\00"
@.str.3 = [67 x i8] c" pit task -c name [-s status] [-p priority] [-d date] [-t time]\0A\00"
@.str.4 = [17 x i8] c"Editing a task:\0A\00"
@.str.5 = [81 x i8] c" pit task -e [number] [-n name] [-s status] [-p priority] [-d date] [-t time]\0A\00"
@.str.6 = [16 x i8] c"Moving a task:\0A\00"
@.str.7 = [35 x i8] c" pit task -m [number] -p number\0A\00"
@.str.8 = [18 x i8] c"Deleting a task:\0A\00"
@.str.9 = [25 x i8] c" pit task -d [number]\0A\00"
@.str.10 = [17 x i8] c"Viewing a task:\0A\00"
@.str.11 = [27 x i8] c" pit task [[-q] number]\0A\00"
@.str.12 = [18 x i8] c"Searching tasks:\0A\00"
@.str.13 = [119 x i8] c" pit task -q [number | [-n name] [-s status] [-p priority] [-d date-from] [-D date-to] [-t time-min] [-T time-max]]\0A\00"
@.str.14 = [25 x i8] c"Supported date formats:\0A\00"
@.str.15 = [97 x i8] c" none, 4/26, 4/26/2012, 4/26/12, '4/26 3pm', '4/26 19:30', '4/26/2012 3:15am', '4/26/12 17:00'\00"
@.str.16 = [102 x i8] c" 'Apr 26', 'Apr 26, 2012', 'Apr 26 3pm', 'Apr 26 19:30', 'Apr 26, 12 3:15am', 'Apr 26, 2012 17:00'\0A\00"
@.str.17 = [25 x i8] c"Supported time formats:\0A\00"
@.str.18 = [40 x i8] c" none, 17, 17:00, 17:30, 5pm, 1:15am\0A\00"
@.str.19 = [11 x i8] c"Examples:\0A\00"
@.str.20 = [29 x i8] c" $ pit task -c 'Hack this'\00"
@.str.21 = [65 x i8] c" created task 1/1: Hack this (status: open, priority: normal)\0A\00"
@.str.22 = [62 x i8] c" $ pit task -c 'And hack that' -s new -p urgent -d 'Dec 31'\00"
@.str.23 = [88 x i8] c" created task 2/1: And hack that (status: new, priority: urgent, date: Dec 31, 2010)\0A\00"
@.str.24 = [11 x i8] c" $ pit t\00"
@.str.25 = [72 x i8] c" 1: (username) [open] [normal] Hack this (0 notes)\00"
@.str.26 = [73 x i8] c" * 2: (username) [new ] [urgent] Dec 31, 2010 And hack that (0 notes)\0A\00"
@.str.27 = [41 x i8] c" $ pit t -e 1 -s done -d 10/10 -t 4:30\00"
@.str.28 = [77 x i8] c" updated task 1: Hack that (status: done, date: Oct 10, 2010, time: 4:30)\0A\00"
@.str.29 = [77 x i8] c" 1: (username) [done] [normal] Oct 10, 2010 4:30 Hack this (0 notes)\00"
@.str.30 = [78 x i8] c" * 2: (username) [new] [urgent] Dec 31, 2010 And hack that (0 notes)\0A\00"
@.str.31 = [14 x i8] c" $ pit t -d\00"
@.str.32 = [34 x i8] c" deleted task 2: And hack that\0A\00"
@.str.33 = [72 x i8] c" 1: (username) [done] [normal] Oct 10, 2010 4:30 Hack this (0 notes)\0A\00"
@__const.help_task.msg = [37 x i8*] [i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.15, i32 0, i32 0), i8* getelementptr inbounds ([102 x i8], [102 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.17, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.33, i32 0, i32 0), i8* null]
define void @help_task() {
%1 = alloca [37 x i8*]
%2 = bitcast [37 x i8*]* %1 to i8*
%3 = getelementptr inbounds [37 x i8*], [37 x i8*]* %1, i64 0, i64 0
%4 = call i32 @printa(i8** %3)
ret void
}

LLVM IR (-O2):
@.str = [107 x i8] c"In Pit a task belongs to a project and projects can have many tasks. Task attributes include name, status,\00"
@.str.1 = [72 x i8] c"priority, date, and time. All attributes except the name are optional.\0A\00"
@.str.2 = [18 x i8] c"Creating a task:\0A\00"
@.str.3 = [67 x i8] c" pit task -c name [-s status] [-p priority] [-d date] [-t time]\0A\00"
@.str.4 = [17 x i8] c"Editing a task:\0A\00"
@.str.5 = [81 x i8] c" pit task -e [number] [-n name] [-s status] [-p priority] [-d date] [-t time]\0A\00"
@.str.6 = [16 x i8] c"Moving a task:\0A\00"
@.str.7 = [35 x i8] c" pit task -m [number] -p number\0A\00"
@.str.8 = [18 x i8] c"Deleting a task:\0A\00"
@.str.9 = [25 x i8] c" pit task -d [number]\0A\00"
@.str.10 = [17 x i8] c"Viewing a task:\0A\00"
@.str.11 = [27 x i8] c" pit task [[-q] number]\0A\00"
@.str.12 = [18 x i8] c"Searching tasks:\0A\00"
@.str.13 = [119 x i8] c" pit task -q [number | [-n name] [-s status] [-p priority] [-d date-from] [-D date-to] [-t time-min] [-T time-max]]\0A\00"
@.str.14 = [25 x i8] c"Supported date formats:\0A\00"
@.str.15 = [97 x i8] c" none, 4/26, 4/26/2012, 4/26/12, '4/26 3pm', '4/26 19:30', '4/26/2012 3:15am', '4/26/12 17:00'\00"
@.str.16 = [102 x i8] c" 'Apr 26', 'Apr 26, 2012', 'Apr 26 3pm', 'Apr 26 19:30', 'Apr 26, 12 3:15am', 'Apr 26, 2012 17:00'\0A\00"
@.str.17 = [25 x i8] c"Supported time formats:\0A\00"
@.str.18 = [40 x i8] c" none, 17, 17:00, 17:30, 5pm, 1:15am\0A\00"
@.str.19 = [11 x i8] c"Examples:\0A\00"
@.str.20 = [29 x i8] c" $ pit task -c 'Hack this'\00"
@.str.21 = [65 x i8] c" created task 1/1: Hack this (status: open, priority: normal)\0A\00"
@.str.22 = [62 x i8] c" $ pit task -c 'And hack that' -s new -p urgent -d 'Dec 31'\00"
@.str.23 = [88 x i8] c" created task 2/1: And hack that (status: new, priority: urgent, date: Dec 31, 2010)\0A\00"
@.str.24 = [11 x i8] c" $ pit t\00"
@.str.25 = [72 x i8] c" 1: (username) [open] [normal] Hack this (0 notes)\00"
@.str.26 = [73 x i8] c" * 2: (username) [new ] [urgent] Dec 31, 2010 And hack that (0 notes)\0A\00"
@.str.27 = [41 x i8] c" $ pit t -e 1 -s done -d 10/10 -t 4:30\00"
@.str.28 = [77 x i8] c" updated task 1: Hack that (status: done, date: Oct 10, 2010, time: 4:30)\0A\00"
@.str.29 = [77 x i8] c" 1: (username) [done] [normal] Oct 10, 2010 4:30 Hack this (0 notes)\00"
@.str.30 = [78 x i8] c" * 2: (username) [new] [urgent] Dec 31, 2010 And hack that (0 notes)\0A\00"
@.str.31 = [14 x i8] c" $ pit t -d\00"
@.str.32 = [34 x i8] c" deleted task 2: And hack that\0A\00"
@.str.33 = [72 x i8] c" 1: (username) [done] [normal] Oct 10, 2010 4:30 Hack this (0 notes)\0A\00"
@__const.help_task.msg = [37 x i8*] [i8* getelementptr inbounds ([107 x i8], [107 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([119 x i8], [119 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.15, i32 0, i32 0), i8* getelementptr inbounds ([102 x i8], [102 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.17, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.19, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([88 x i8], [88 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.33, i32 0, i32 0), i8* null]
define void @help_task() {
%1 = alloca [37 x i8*]
%2 = bitcast [37 x i8*]* %1 to i8*
%3 = getelementptr inbounds [37 x i8*], [37 x i8*]* %1, i64 0, i64 0
%4 = call i32 @printa(i8** %3)
ret void
}