#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*/ puts(char *);
void help(void) {
  puts("polysegcoords - calculate coordinates for a segment of a regular\n"
       "                polygon with optional offset and/or rotation.\n"
       "options:\n"
       "   --sides, -s    specify number of sides of polygon\n"
       "   --angle, -a    alternatively specify segment angle\n"
       "   --radius, -r   specify polygon radius (default: 1.0)\n"
       "   --xoffset, -x  horizontal center of polygon (default: 0.0)\n"
       "   --yoffset, -y  vertical center of polygon (default: 0.0)\n"
       "   --int, -i      output data as integer coordinates (default)\n"
       "   --float, -f    output data as floating point coordinates\n"
       "   --svg, -p      output data as svg path\n"
       "   --debug, -d    show extra lines and things for debugging\n"
       "   --rotate, -r   rotation angle (default: 0.0)\n\n"
       "note: one of either --sides, or --angle *must* be specified.\n");
}


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

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

LLVM IR (-O0):
@.str = [757 x i8] c"polysegcoords - calculate coordinates for a segment of a regular\0A polygon with optional offset and/or rotation.\0Aoptions:\0A --sides, -s specify number of sides of polygon\0A --angle, -a alternatively specify segment angle\0A --radius, -r specify polygon radius (default: 1.0)\0A --xoffset, -x horizontal center of polygon (default: 0.0)\0A --yoffset, -y vertical center of polygon (default: 0.0)\0A --int, -i output data as integer coordinates (default)\0A --float, -f output data as floating point coordinates\0A --svg, -p output data as svg path\0A --debug, -d show extra lines and things for debugging\0A --rotate, -r rotation angle (default: 0.0)\0A\0Anote: one of either --sides, or --angle *must* be specified.\0A\00"
define void @help() {
%1 = call i32 @puts(i8* getelementptr inbounds ([757 x i8], [757 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [757 x i8] c"polysegcoords - calculate coordinates for a segment of a regular\0A polygon with optional offset and/or rotation.\0Aoptions:\0A --sides, -s specify number of sides of polygon\0A --angle, -a alternatively specify segment angle\0A --radius, -r specify polygon radius (default: 1.0)\0A --xoffset, -x horizontal center of polygon (default: 0.0)\0A --yoffset, -y vertical center of polygon (default: 0.0)\0A --int, -i output data as integer coordinates (default)\0A --float, -f output data as floating point coordinates\0A --svg, -p output data as svg path\0A --debug, -d show extra lines and things for debugging\0A --rotate, -r rotation angle (default: 0.0)\0A\0Anote: one of either --sides, or --angle *must* be specified.\0A\00"
define void @help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([757 x i8], [757 x i8]* @.str, i64 0, i64 0))
ret void
}