// RUN: %clang_cc1 -triple x86_64 -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -triple x86_64 -emit-llvm %s -o - -fexperimental-new-constant-interpreter | FileCheck %s typedef __typeof((int*) 0 - (int*) 0) intptr_t; // CHECK: @f1.l0 = internal global i64 ptrtoint (ptr @f1 to i64) void f1(void) { static intptr_t l0 = (intptr_t) f1; } // CHECK: @FoldableAddrLabelDiff.x = internal global i64 sub (i64 ptrtoint (ptr blockaddress(@FoldableAddrLabelDiff, %a) to i64), i64 ptrtoint (ptr blockaddress(@FoldableAddrLabelDiff, %b) to i64)), align 8 void FoldableAddrLabelDiff() { static long x = (long)&&a-(long)&&b; a:b:return;} // CHECK: @c.ar = internal global {{.*}} sub (i{{..}} ptrtoint (ptr blockaddress(@c, %l2) to i{{..}}), i{{..}} ptrtoint (ptr blockaddress(@c, %l1) to i{{..}})) int c(void) { static int ar = &&l2 - &&l1; l1: return 10; l2: return 11; }