diff options
| author | bors <bors@rust-lang.org> | 2017-02-09 17:09:50 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-02-09 17:09:50 +0000 |
| commit | 405327635419e22a956dfe8f7caf4817c8ae5e93 (patch) | |
| tree | ff15270c6e603dc05e997510737a9c8ac488cc6c /src/test/codegen | |
| parent | e7fc53b8f0595d9b5be6a3b64d29d3cfed7c7199 (diff) | |
| parent | b037c5211b9ba496252af5a0369b48649f91ccc8 (diff) | |
| download | rust-405327635419e22a956dfe8f7caf4817c8ae5e93.tar.gz rust-405327635419e22a956dfe8f7caf4817c8ae5e93.zip | |
Auto merge of #38109 - tromey:main-subprogram, r=michaelwoerister
Emit DW_AT_main_subprogram This changes rustc to emit DW_AT_main_subprogram on the "main" program. This lets gdb suitably stop at the user's main in response to "start" (rather than the library's main, which is what happens currently). Fixes #32620 r? michaelwoerister
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/mainsubprogram.rs | 26 | ||||
| -rw-r--r-- | src/test/codegen/mainsubprogramstart.rs | 30 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/test/codegen/mainsubprogram.rs b/src/test/codegen/mainsubprogram.rs new file mode 100644 index 00000000000..657f4b662f7 --- /dev/null +++ b/src/test/codegen/mainsubprogram.rs @@ -0,0 +1,26 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// The minimum LLVM version is set to 3.8, but really this test +// depends on a patch that is was committed to upstream LLVM before +// 4.0; and also backported to the Rust LLVM fork. + +// ignore-tidy-linelength +// ignore-windows +// ignore-macos +// min-llvm-version 3.8 + +// compile-flags: -g -C no-prepopulate-passes + +// CHECK-LABEL: @main +// CHECK: {{.*}}DISubprogram{{.*}}name: "main",{{.*}}DIFlagMainSubprogram{{.*}} + +pub fn main() { +} diff --git a/src/test/codegen/mainsubprogramstart.rs b/src/test/codegen/mainsubprogramstart.rs new file mode 100644 index 00000000000..cd34a1670dc --- /dev/null +++ b/src/test/codegen/mainsubprogramstart.rs @@ -0,0 +1,30 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// The minimum LLVM version is set to 3.8, but really this test +// depends on a patch that is was committed to upstream LLVM before +// 4.0; and also backported to the Rust LLVM fork. + +// ignore-tidy-linelength +// ignore-windows +// ignore-macos +// min-llvm-version 3.8 + +// compile-flags: -g -C no-prepopulate-passes + +#![feature(start)] + +// CHECK-LABEL: @main +// CHECK: {{.*}}DISubprogram{{.*}}name: "start",{{.*}}DIFlagMainSubprogram{{.*}} + +#[start] +fn start(_: isize, _: *const *const u8) -> isize { + return 0; +} |
