#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 *);
void print_help_message() {
  printf(
      "Usage: common [OPTION]... FILE1 FILE2\nCompare sorted files FILE1 and "
      "FILE2 line by line.\n\nWith no options, produce three-column output.  "
      "Column one contains\nlines unique to FILE1, column two contains lines "
      "unique to FILE2,\nand column three contains lines common to both "
      "files.\n\n  -1              suppress column 1 (lines unique to FILE1)\n "
      " -2              suppress column 2 (lines unique to FILE2)\n  -3        "
      "      suppress column 3 (lines that appear in both files)\n\n  --trim   "
      "  trim spaces from the end of the line before comparing\n  --silent   "
      "suppress warnings\n  --column-delimiter[=]<STR>  separate columns with "
      "<STR>\n      --help     display this help and exit\n      --version  "
      "output version information and exit\n\nExamples:\n  common -12 file1 "
      "file2  Print only lines present in both file1 and file2.\n  common -3 "
      "file1 file2  Print lines in file1 not in file2, and vice "
      "versa.\n\nReport common bugs to toni.rmc@gmail.com\n");
  exit(0);
}


x86 assembly (clang, -O0):
<print_help_message>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<print_help_message>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [928 x i8] c"Usage: common [OPTION]... FILE1 FILE2\0ACompare sorted files FILE1 and FILE2 line by line.\0A\0AWith no options, produce three-column output. Column one contains\0Alines unique to FILE1, column two contains lines unique to FILE2,\0Aand column three contains lines common to both files.\0A\0A -1 suppress column 1 (lines unique to FILE1)\0A -2 suppress column 2 (lines unique to FILE2)\0A -3 suppress column 3 (lines that appear in both files)\0A\0A --trim trim spaces from the end of the line before comparing\0A --silent suppress warnings\0A --column-delimiter[=]<STR> separate columns with <STR>\0A --help display this help and exit\0A --version output version information and exit\0A\0AExamples:\0A common -12 file1 file2 Print only lines present in both file1 and file2.\0A common -3 file1 file2 Print lines in file1 not in file2, and vice versa.\0A\0AReport common bugs to toni.rmc@gmail.com\0A\00"
define void @print_help_message() {
%1 = call i32 @printf(i8* getelementptr inbounds ([928 x i8], [928 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@str = [927 x i8] c"Usage: common [OPTION]... FILE1 FILE2\0ACompare sorted files FILE1 and FILE2 line by line.\0A\0AWith no options, produce three-column output. Column one contains\0Alines unique to FILE1, column two contains lines unique to FILE2,\0Aand column three contains lines common to both files.\0A\0A -1 suppress column 1 (lines unique to FILE1)\0A -2 suppress column 2 (lines unique to FILE2)\0A -3 suppress column 3 (lines that appear in both files)\0A\0A --trim trim spaces from the end of the line before comparing\0A --silent suppress warnings\0A --column-delimiter[=]<STR> separate columns with <STR>\0A --help display this help and exit\0A --version output version information and exit\0A\0AExamples:\0A common -12 file1 file2 Print only lines present in both file1 and file2.\0A common -3 file1 file2 Print lines in file1 not in file2, and vice versa.\0A\0AReport common bugs to toni.rmc@gmail.com\00"
define void @print_help_message() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([927 x i8], [927 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 0)
unreachable
}