#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 *);
void prompt() {
  printf("Syntax:  stm32isp [Options] <file> <comport> <baudrate>\n"
         "\n"
         "Example: stm32isp test.hex /dev/ttyS0 115200\n"
         "\n"
         "Options: -bin              for uploading binary file\n"
         "         -reset [-]DTR|RTS reset control line, default DTR\n"
         "         -bootp [-]DTR|RTS bootp control line, default RTS\n"
         "         -term <baud>      for starting terminal after upload with "
         "buadrate, default 9600\n"
         "         -detectonly       detect chip set only\n"
         "         -termonly         for starting terminal without an upload\n"
         "         -noreset          do not reset the board in termonly mode\n"
         "         -echo             local echo in term\n"
         "         -line             local line edit in term\n"
         "         -verbose          for more information\n"
         "         -log <file name>  for enabling logging of terminal output "
         "to <file name>\n");
}


x86 assembly (clang, -O0):
<prompt>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<prompt>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [774 x i8] c"Syntax: stm32isp [Options] <file> <comport> <baudrate>\0A\0AExample: stm32isp test.hex /dev/ttyS0 115200\0A\0AOptions: -bin for uploading binary file\0A -reset [-]DTR|RTS reset control line, default DTR\0A -bootp [-]DTR|RTS bootp control line, default RTS\0A -term <baud> for starting terminal after upload with buadrate, default 9600\0A -detectonly detect chip set only\0A -termonly for starting terminal without an upload\0A -noreset do not reset the board in termonly mode\0A -echo local echo in term\0A -line local line edit in term\0A -verbose for more information\0A -log <file name> for enabling logging of terminal output to <file name>\0A\00"
define void @prompt() {
%1 = call i32 @printf(i8* getelementptr inbounds ([774 x i8], [774 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [773 x i8] c"Syntax: stm32isp [Options] <file> <comport> <baudrate>\0A\0AExample: stm32isp test.hex /dev/ttyS0 115200\0A\0AOptions: -bin for uploading binary file\0A -reset [-]DTR|RTS reset control line, default DTR\0A -bootp [-]DTR|RTS bootp control line, default RTS\0A -term <baud> for starting terminal after upload with buadrate, default 9600\0A -detectonly detect chip set only\0A -termonly for starting terminal without an upload\0A -noreset do not reset the board in termonly mode\0A -echo local echo in term\0A -line local line edit in term\0A -verbose for more information\0A -log <file name> for enabling logging of terminal output to <file name>\00"
define void @prompt() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([773 x i8], [773 x i8]* @str, i64 0, i64 0))
ret void
}