blob: 7803467eab9ac0a4796656d14228de125c3aee0b [file] [log] [blame]
David Tweeda0d58782012-10-25 13:56:30 +00001// RUN: %clang_cc1 -emit-llvm -g %s -o - | FileCheck %s
Devang Patelaca745b2010-09-29 23:09:21 +00002// self and _cmd are marked as DW_AT_artificial.
Devang Patelaca745b2010-09-29 23:09:21 +00003// myarg is not marked as DW_AT_artificial.
4
Devang Patelaca745b2010-09-29 23:09:21 +00005@interface MyClass {
6}
7- (id)init:(int) myarg;
8@end
9
10@implementation MyClass
11- (id) init:(int) myarg
12{
13 return self;
14}
15@end
David Blaikie083b90d2013-02-02 00:34:26 +000016
17// It's weird that the first two parameters are recorded as being in a
18// different, ("<unknown>") file compared to the third parameter which is 'in'
19// the actual source file. (see the metadata node after the arg name in each
20// line)
21// CHECK: metadata !{i32 {{.*}}, metadata ![[CTOR:.*]], metadata !"self", metadata ![[UNKFILE:.*]], i32 16777227, metadata !{{.*}}, i32 1088, i32 0} ; [ DW_TAG_arg_variable ] [self] [line 11]
22// CHECK: metadata !{i32 {{.*}}, metadata ![[CTOR]], metadata !"_cmd", metadata ![[UNKFILE]], i32 33554443, metadata !{{.*}}, i32 64, i32 0} ; [ DW_TAG_arg_variable ] [_cmd] [line 11]
23// CHECK: metadata !{i32 {{.*}}, metadata ![[CTOR]], metadata !"myarg", metadata !{{.*}}, i32 50331659, metadata !{{.*}}, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [myarg] [line 11]