void avahi_warn_unsupported_HOWL(const char *function) {
  avahi_warn_HOWL("The program '%s' called '%s()' which is not supported (or "
                  "only supported partially) in the "
                  "HOWL"
                  " compatibility layer of Avahi.",
                  avahi_exe_name_HOWL(), function);
  avahi_warn_HOWL(
      "Please fix your application to use the native API of Avahi!");
  avahi_warn_HOWL("For more information see <http://0pointer.de/avahi-compat?s="
                  "howl"
                  "&e=%s&f=%s>",
                  avahi_exe_name_HOWL(), function);
}


x86 assembly (clang, -O0):
<avahi_warn_unsupported_HOWL>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    $0x0,%al
call   1040 <avahi_exe_name_HOWL@plt>
mov    %eax,%esi
mov    -0x8(%rbp),%rdx
lea    0xec0(%rip),%rdi
mov    $0x0,%al
call   1030 <avahi_warn_HOWL@plt>
lea    0xf30(%rip),%rdi
mov    $0x0,%al
call   1030 <avahi_warn_HOWL@plt>
mov    $0x0,%al
call   1040 <avahi_exe_name_HOWL@plt>
mov    %eax,%esi
mov    -0x8(%rbp),%rdx
lea    0xf51(%rip),%rdi
mov    $0x0,%al
call   1030 <avahi_warn_HOWL@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<avahi_warn_unsupported_HOWL>:
push   %rbx
mov    %rdi,%rbx
xor    %eax,%eax
call   1040 <avahi_exe_name_HOWL@plt>
lea    0xece(%rip),%rdi
mov    %eax,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1030 <avahi_warn_HOWL@plt>
lea    0xf39(%rip),%rdi
xor    %eax,%eax
call   1030 <avahi_warn_HOWL@plt>
xor    %eax,%eax
call   1040 <avahi_exe_name_HOWL@plt>
lea    0xf60(%rip),%rdi
mov    %eax,%esi
mov    %rbx,%rdx
xor    %eax,%eax
pop    %rbx
jmp    1030 <avahi_warn_HOWL@plt>

LLVM IR (-O0):
@.str = [126 x i8] c"The program '%s' called '%s()' which is not supported (or only supported partially) in the HOWL compatibility layer of Avahi.\00"
@.str.1 = [60 x i8] c"Please fix your application to use the native API of Avahi!\00"
@.str.2 = [76 x i8] c"For more information see <http://0pointer.de/avahi-compat?s=howl&e=%s&f=%s>\00"
define void @avahi_warn_unsupported_HOWL(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = call i32 (...) @avahi_exe_name_HOWL()
%4 = load i8*, i8** %2
%5 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @avahi_warn_HOWL to i32 (i8*, i32, i8*, ...)*)(i8* getelementptr inbounds ([126 x i8], [126 x i8]* @.str, i64 0, i64 0), i32 %3, i8* %4)
%6 = call i32 (i8*, ...) bitcast (i32 (...)* @avahi_warn_HOWL to i32 (i8*, ...)*)(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.1, i64 0, i64 0))
%7 = call i32 (...) @avahi_exe_name_HOWL()
%8 = load i8*, i8** %2
%9 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @avahi_warn_HOWL to i32 (i8*, i32, i8*, ...)*)(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.2, i64 0, i64 0), i32 %7, i8* %8)
ret void
}

LLVM IR (-O2):
@.str = [126 x i8] c"The program '%s' called '%s()' which is not supported (or only supported partially) in the HOWL compatibility layer of Avahi.\00"
@.str.1 = [60 x i8] c"Please fix your application to use the native API of Avahi!\00"
@.str.2 = [76 x i8] c"For more information see <http://0pointer.de/avahi-compat?s=howl&e=%s&f=%s>\00"
define void @avahi_warn_unsupported_HOWL(i8* %0) {
%2 = tail call i32 (...) @avahi_exe_name_HOWL()
%3 = tail call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @avahi_warn_HOWL to i32 (i8*, i32, i8*, ...)*)(i8* getelementptr inbounds ([126 x i8], [126 x i8]* @.str, i64 0, i64 0), i32 %2, i8* %0)
%4 = tail call i32 (i8*, ...) bitcast (i32 (...)* @avahi_warn_HOWL to i32 (i8*, ...)*)(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.1, i64 0, i64 0))
%5 = tail call i32 (...) @avahi_exe_name_HOWL()
%6 = tail call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @avahi_warn_HOWL to i32 (i8*, i32, i8*, ...)*)(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.2, i64 0, i64 0), i32 %5, i8* %0)
ret void
}