#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*/ printf(char *, char const *);
void do_todolist(const char *tool_name) {
  printf("TODO list %s "
         "v0.6final (2013-08-07)"
         " (in that order)\n\n"
         "  v07: implement repacking of tar, lzpt\n"
         "  v07: implement level logic for ease of repack (create mode)\n"
         "  v07: fully integrate fwtoolGUI into main code\n"
         "  v07: cleanup variables, variable names and code ;)\n"
         "  v08: implement unpacking of cramfs, cramfs-lz77, axfs, vfat, ext2\n"
         "  v08: implement repacking of vfat, ext2, cramfs(lz77), axfs\n"
         "  v08: implement modify config&code package format\n"
         "  v09: implement on the fly in memory modify for end users\n"
         "  v09: implement modify of level6 (bin fw's for sub cpu's)\n"
         "  v09: clear many minor TODO, UGLY; do heavy testing\n"
         "  v1.0: document what this tools do ...\n\n",
         tool_name);
}


x86 assembly (clang, -O0):
<do_todolist>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xed9(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<do_todolist>:
mov    %rdi,%rsi
lea    0xee6(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [649 x i8] c"TODO list %s v0.6final (2013-08-07) (in that order)\0A\0A v07: implement repacking of tar, lzpt\0A v07: implement level logic for ease of repack (create mode)\0A v07: fully integrate fwtoolGUI into main code\0A v07: cleanup variables, variable names and code ;)\0A v08: implement unpacking of cramfs, cramfs-lz77, axfs, vfat, ext2\0A v08: implement repacking of vfat, ext2, cramfs(lz77), axfs\0A v08: implement modify config&code package format\0A v09: implement on the fly in memory modify for end users\0A v09: implement modify of level6 (bin fw's for sub cpu's)\0A v09: clear many minor TODO, UGLY; do heavy testing\0A v1.0: document what this tools do ...\0A\0A\00"
define void @do_todolist(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([649 x i8], [649 x i8]* @.str, i64 0, i64 0), i8* %3)
ret void
}

LLVM IR (-O2):
@.str = [649 x i8] c"TODO list %s v0.6final (2013-08-07) (in that order)\0A\0A v07: implement repacking of tar, lzpt\0A v07: implement level logic for ease of repack (create mode)\0A v07: fully integrate fwtoolGUI into main code\0A v07: cleanup variables, variable names and code ;)\0A v08: implement unpacking of cramfs, cramfs-lz77, axfs, vfat, ext2\0A v08: implement repacking of vfat, ext2, cramfs(lz77), axfs\0A v08: implement modify config&code package format\0A v09: implement on the fly in memory modify for end users\0A v09: implement modify of level6 (bin fw's for sub cpu's)\0A v09: clear many minor TODO, UGLY; do heavy testing\0A v1.0: document what this tools do ...\0A\0A\00"
define void @do_todolist(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([649 x i8], [649 x i8]* @.str, i64 0, i64 0), i8* %0)
ret void
}