#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 */
typedef int /*<<< orphan*/ sqlite3;

/* Variables and functions */
int db_table_upgrade(int /*<<< orphan*/ *, char *, char *);
int db_upgrade_v2106(sqlite3 *hdl) {
  return db_table_upgrade(
      hdl, "playlists",
      "CREATE TABLE new_playlists ("
      "   id             INTEGER PRIMARY KEY NOT NULL,"
      "   title          VARCHAR(255) NOT NULL COLLATE DAAP,"
      "   type           INTEGER NOT NULL,"
      "   query          VARCHAR(1024),"
      "   db_timestamp   INTEGER NOT NULL,"
      "   disabled       INTEGER DEFAULT 0,"
      "   path           VARCHAR(4096),"
      "   idx            INTEGER NOT NULL,"
      "   special_id     INTEGER DEFAULT 0,"
      "   virtual_path   VARCHAR(4096),"
      "   parent_id      INTEGER DEFAULT 0,"
      "   directory_id   INTEGER DEFAULT 0,"
      "   query_order    VARCHAR(1024),"
      "   query_limit    INTEGER DEFAULT 0,"
      "   media_kind     INTEGER DEFAULT 1,"
      "   artwork_url    VARCHAR(4096) DEFAULT NULL"
      ");");
}


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

x86 assembly (clang, -O2):
<db_upgrade_v2106>:
lea    0xee9(%rip),%rsi
lea    0xeec(%rip),%rdx
jmp    1030 <db_table_upgrade@plt>

LLVM IR (-O0):
@.str = [10 x i8] c"playlists\00"
@.str.1 = [624 x i8] c"CREATE TABLE new_playlists ( id INTEGER PRIMARY KEY NOT NULL, title VARCHAR(255) NOT NULL COLLATE DAAP, type INTEGER NOT NULL, query VARCHAR(1024), db_timestamp INTEGER NOT NULL, disabled INTEGER DEFAULT 0, path VARCHAR(4096), idx INTEGER NOT NULL, special_id INTEGER DEFAULT 0, virtual_path VARCHAR(4096), parent_id INTEGER DEFAULT 0, directory_id INTEGER DEFAULT 0, query_order VARCHAR(1024), query_limit INTEGER DEFAULT 0, media_kind INTEGER DEFAULT 1, artwork_url VARCHAR(4096) DEFAULT NULL);\00"
define i32 @db_upgrade_v2106(i32* %0) {
%2 = alloca i32*
store i32* %0, i32** %2
%3 = load i32*, i32** %2
%4 = call i32 @db_table_upgrade(i32* %3, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([624 x i8], [624 x i8]* @.str.1, i64 0, i64 0))
ret i32 %4
}

LLVM IR (-O2):
@.str = [10 x i8] c"playlists\00"
@.str.1 = [624 x i8] c"CREATE TABLE new_playlists ( id INTEGER PRIMARY KEY NOT NULL, title VARCHAR(255) NOT NULL COLLATE DAAP, type INTEGER NOT NULL, query VARCHAR(1024), db_timestamp INTEGER NOT NULL, disabled INTEGER DEFAULT 0, path VARCHAR(4096), idx INTEGER NOT NULL, special_id INTEGER DEFAULT 0, virtual_path VARCHAR(4096), parent_id INTEGER DEFAULT 0, directory_id INTEGER DEFAULT 0, query_order VARCHAR(1024), query_limit INTEGER DEFAULT 0, media_kind INTEGER DEFAULT 1, artwork_url VARCHAR(4096) DEFAULT NULL);\00"
define i32 @db_upgrade_v2106(i32* %0) {
%2 = tail call i32 @db_table_upgrade(i32* %0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([624 x i8], [624 x i8]* @.str.1, i64 0, i64 0))
ret i32 %2
}