Eli Friedman | 5930a4c | 2012-01-05 23:59:40 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin -emit-llvm -o - %s -std=c++11 | FileCheck %s |
| 2 | |
| 3 | namespace CrossFuncLabelDiff { |
| 4 | // Make sure we refuse to constant-fold the variable b. |
| 5 | constexpr long a() { return (long)&&lbl + (0 && ({lbl: 0;})); } |
| 6 | void test() { static long b = (long)&&lbl - a(); lbl: return; } |
| 7 | // CHECK: sub nsw i64 ptrtoint (i8* blockaddress(@_ZN18CrossFuncLabelDiff4testEv, {{.*}}) to i64), |
| 8 | // CHECK: store i64 {{.*}}, i64* @_ZZN18CrossFuncLabelDiff4testEvE1b, align 8 |
| 9 | } |