blob: 5abc050431d1d9f1925d3b8df595176e1b8d9ebd [file] [log] [blame]
Douglas Katzman3459ce22015-10-08 04:24:12 +00001// RUN: %clang_cc1 -triple x86_64-none-linux-gnu -emit-llvm -debug-info-kind=limited %s -o - | FileCheck %s
David Blaikiebb113912014-04-05 07:23:17 +00002
3// Multiple references to the same constant should result in only one entry in
4// the globals list.
5
David Blaikie506a7452014-04-05 07:46:57 +00006namespace ns {
David Blaikiebb113912014-04-05 07:23:17 +00007const int cnst = 42;
David Blaikie506a7452014-04-05 07:46:57 +00008}
David Blaikiebb113912014-04-05 07:23:17 +00009int f1() {
David Blaikie506a7452014-04-05 07:46:57 +000010 return ns::cnst + ns::cnst;
David Blaikiebb113912014-04-05 07:23:17 +000011}
12
Duncan P. N. Exon Smith9dd4e4e2015-04-29 16:40:08 +000013// CHECK: !DICompileUnit(
Duncan P. N. Exon Smithf04be1f2015-03-03 17:25:55 +000014// CHECK-SAME: globals: [[GLOBALS:![0-9]*]]
David Blaikiebb113912014-04-05 07:23:17 +000015
Duncan P. N. Exon Smithb3a66692014-12-15 19:10:08 +000016// CHECK: [[GLOBALS]] = !{[[CNST:![0-9]*]]}
David Blaikiebb113912014-04-05 07:23:17 +000017
Adrian Prantl5f4740d2016-12-20 02:10:02 +000018// CHECK: [[CNST]] = !DIGlobalVariableExpression(var: [[CNSTV:.*]], expr:
19// CHECK: [[CNSTV]] = distinct !DIGlobalVariable(name: "cnst",
20// CHECK-SAME: scope: [[NS:![0-9]*]]
Duncan P. N. Exon Smith9dd4e4e2015-04-29 16:40:08 +000021// CHECK: [[NS]] = !DINamespace(name: "ns"
David Blaikie506a7452014-04-05 07:46:57 +000022