#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 module1_section1_topic9() {
  int chapter_number = 1;
  char *chapter_title = "The Boy Who Lived";
  char *paragraph1 =
      "Mr. and Mrs. Dursley, of number four, Privet Drive, were proud to say "
      "that they were perfectly normal, thank you very much. They were the "
      "last people you'd expect to be involved in anything strange or "
      "mysterious, because they just didn't hold with such nonsense.";
  char *paragraph2 =
      "Mr. Dursley was the director of a firm called Grunnings, which made "
      "drills. He was a big, beefy man with hardly any neck, although he did "
      "have a very large mustache. Mrs. Dursley was thin and blonde and had "
      "nearly twice the usual amount of neck, which came in very useful as she "
      "spent so much of her time craning over garden fences, spying on the "
      "neighbors. The Dursleys had a small son called Dudley and in their "
      "opinion there was no finer boy anywhere.";
  char *paragraph3 =
      "The Dursleys had everything they wanted, but they also had a secret, "
      "and their greatest fear was that somebody would discover it. They "
      "didn't think they could bear it if anyone found out about the Potters. "
      "Mrs. Potter was Mrs. Dursley's sister, but they hadn't met for several "
      "years; in fact, Mrs. Dursley pretended she didn't have a sister, "
      "because her sister and her good-for-nothing husband were as "
      "unDursleyish as it was possible to be. The Dursleys shuddered to think "
      "what the neighbors would say if the Potters arrived in the street. The "
      "Dursleys knew that the Potters had a small son, too, but they had never "
      "even seen him. This boy was another good reason for keeping the Potters "
      "away; they didn't want Dudley mixing with a child like that.";
  char *paragraph4 =
      "When Mr. and Mrs. Dursley woke up on the dull, gray Tuesday our story "
      "starts, there was nothing about the cloudy sky outside to suggest that "
      "strange and mysterious things would soon be happening all over the "
      "country. Mr. Dursley hummed as he picked out his most boring tie for "
      "work, and Mrs. Dursley gossiped away happily as she wrestled a "
      "screaming Dudley into his high chair.";
  char *paragraph5 =
      "None of them noticed a large, tawny owl flutter past the window.";
  printf("Harry Potter and the Philosopher's Stone - a quick read\n\n");
  printf("Chapter %d: \t%s\n\n", chapter_number, chapter_title);
  printf("\t%s\n\n\t%s\n\n\t%s\n\n\t%s\n\n\t%s\n\n", paragraph1, paragraph2,
         paragraph3, paragraph4, paragraph5);
}


x86 assembly (clang, -O0):
<module1_section1_topic9>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
movl   $0x1,-0x4(%rbp)
lea    0xeda(%rip),%rax
mov    %rax,-0x10(%rbp)
lea    0xee1(%rip),%rax
mov    %rax,-0x18(%rbp)
lea    0xfdd(%rip),%rax
mov    %rax,-0x20(%rbp)
lea    0x1199(%rip),%rax
mov    %rax,-0x28(%rbp)
lea    0x147b(%rip),%rax
mov    %rax,-0x30(%rbp)
lea    0x15ea(%rip),%rax
mov    %rax,-0x38(%rbp)
lea    0x1620(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%esi
mov    -0x10(%rbp),%rdx
lea    0x1645(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x18(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    0x1635(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<module1_section1_topic9>:
push   %rax
lea    0x168c(%rip),%rdi
call   1030 <puts@plt>
lea    0x1654(%rip),%rdi
lea    0xec5(%rip),%rdx
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x164c(%rip),%rdi
lea    0xebd(%rip),%rsi
lea    0xfbd(%rip),%rdx
lea    0x117d(%rip),%rcx
lea    0x1463(%rip),%r8
lea    0x15d6(%rip),%r9
xor    %eax,%eax
pop    %r11
jmp    1040 <printf@plt>

LLVM IR (-O0):
@.str = [18 x i8] c"The Boy Who Lived\00"
@.str.1 = [263 x i8] c"Mr. and Mrs. Dursley, of number four, Privet Drive, were proud to say that they were perfectly normal, thank you very much. They were the last people you'd expect to be involved in anything strange or mysterious, because they just didn't hold with such nonsense.\00"
@.str.2 = [455 x i8] c"Mr. Dursley was the director of a firm called Grunnings, which made drills. He was a big, beefy man with hardly any neck, although he did have a very large mustache. Mrs. Dursley was thin and blonde and had nearly twice the usual amount of neck, which came in very useful as she spent so much of her time craning over garden fences, spying on the neighbors. The Dursleys had a small son called Dudley and in their opinion there was no finer boy anywhere.\00"
@.str.3 = [749 x i8] c"The Dursleys had everything they wanted, but they also had a secret, and their greatest fear was that somebody would discover it. They didn't think they could bear it if anyone found out about the Potters. Mrs. Potter was Mrs. Dursley's sister, but they hadn't met for several years; in fact, Mrs. Dursley pretended she didn't have a sister, because her sister and her good-for-nothing husband were as unDursleyish as it was possible to be. The Dursleys shuddered to think what the neighbors would say if the Potters arrived in the street. The Dursleys knew that the Potters had a small son, too, but they had never even seen him. This boy was another good reason for keeping the Potters away; they didn't want Dudley mixing with a child like that.\00"
@.str.4 = [378 x i8] c"When Mr. and Mrs. Dursley woke up on the dull, gray Tuesday our story starts, there was nothing about the cloudy sky outside to suggest that strange and mysterious things would soon be happening all over the country. Mr. Dursley hummed as he picked out his most boring tie for work, and Mrs. Dursley gossiped away happily as she wrestled a screaming Dudley into his high chair.\00"
@.str.5 = [65 x i8] c"None of them noticed a large, tawny owl flutter past the window.\00"
@.str.6 = [58 x i8] c"Harry Potter and the Philosopher's Stone - a quick read\0A\0A\00"
@.str.7 = [18 x i8] c"Chapter %d: \09%s\0A\0A\00"
@.str.8 = [26 x i8] c"\09%s\0A\0A\09%s\0A\0A\09%s\0A\0A\09%s\0A\0A\09%s\0A\0A\00"
define void @module1_section1_topic9() {
%1 = alloca i32
%2 = alloca i8*
%3 = alloca i8*
%4 = alloca i8*
%5 = alloca i8*
%6 = alloca i8*
%7 = alloca i8*
store i32 1, i32* %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), i8** %2
store i8* getelementptr inbounds ([263 x i8], [263 x i8]* @.str.1, i64 0, i64 0), i8** %3
store i8* getelementptr inbounds ([455 x i8], [455 x i8]* @.str.2, i64 0, i64 0), i8** %4
store i8* getelementptr inbounds ([749 x i8], [749 x i8]* @.str.3, i64 0, i64 0), i8** %5
store i8* getelementptr inbounds ([378 x i8], [378 x i8]* @.str.4, i64 0, i64 0), i8** %6
store i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.5, i64 0, i64 0), i8** %7
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.6, i64 0, i64 0))
%9 = load i32, i32* %1
%10 = load i8*, i8** %2
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.7, i64 0, i64 0), i32 %9, i8* %10)
%12 = load i8*, i8** %3
%13 = load i8*, i8** %4
%14 = load i8*, i8** %5
%15 = load i8*, i8** %6
%16 = load i8*, i8** %7
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.8, i64 0, i64 0), i8* %12, i8* %13, i8* %14, i8* %15, i8* %16)
ret void
}

LLVM IR (-O2):
@.str = [18 x i8] c"The Boy Who Lived\00"
@.str.1 = [263 x i8] c"Mr. and Mrs. Dursley, of number four, Privet Drive, were proud to say that they were perfectly normal, thank you very much. They were the last people you'd expect to be involved in anything strange or mysterious, because they just didn't hold with such nonsense.\00"
@.str.2 = [455 x i8] c"Mr. Dursley was the director of a firm called Grunnings, which made drills. He was a big, beefy man with hardly any neck, although he did have a very large mustache. Mrs. Dursley was thin and blonde and had nearly twice the usual amount of neck, which came in very useful as she spent so much of her time craning over garden fences, spying on the neighbors. The Dursleys had a small son called Dudley and in their opinion there was no finer boy anywhere.\00"
@.str.3 = [749 x i8] c"The Dursleys had everything they wanted, but they also had a secret, and their greatest fear was that somebody would discover it. They didn't think they could bear it if anyone found out about the Potters. Mrs. Potter was Mrs. Dursley's sister, but they hadn't met for several years; in fact, Mrs. Dursley pretended she didn't have a sister, because her sister and her good-for-nothing husband were as unDursleyish as it was possible to be. The Dursleys shuddered to think what the neighbors would say if the Potters arrived in the street. The Dursleys knew that the Potters had a small son, too, but they had never even seen him. This boy was another good reason for keeping the Potters away; they didn't want Dudley mixing with a child like that.\00"
@.str.4 = [378 x i8] c"When Mr. and Mrs. Dursley woke up on the dull, gray Tuesday our story starts, there was nothing about the cloudy sky outside to suggest that strange and mysterious things would soon be happening all over the country. Mr. Dursley hummed as he picked out his most boring tie for work, and Mrs. Dursley gossiped away happily as she wrestled a screaming Dudley into his high chair.\00"
@.str.5 = [65 x i8] c"None of them noticed a large, tawny owl flutter past the window.\00"
@.str.7 = [18 x i8] c"Chapter %d: \09%s\0A\0A\00"
@.str.8 = [26 x i8] c"\09%s\0A\0A\09%s\0A\0A\09%s\0A\0A\09%s\0A\0A\09%s\0A\0A\00"
@str = [57 x i8] c"Harry Potter and the Philosopher's Stone - a quick read\0A\00"
define void @module1_section1_topic9() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.7, i64 0, i64 0), i32 1, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([263 x i8], [263 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([455 x i8], [455 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([749 x i8], [749 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([378 x i8], [378 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.5, i64 0, i64 0))
ret void
}