auto merge of #15573 : michaelwoerister/rust/lldb-tests-rebased-09-Jul, r=alexcrichton
This PR adds the LLDB autotests to the debuginfo test suite so I don't have to keep rebasing them locally. They are still disabled by default in `tests.mk`. One of the commits also contains a Python pretty printer which can make LLDB print values with Rust syntax. This was mainly added to deal with output format differences between LLDB versions but you can also use it for your normal LLDB debugging sessions. ``` // The following LLDB commands will load and activate the Rust printers command script import ./src/etc/lldb_rust_formatters.py type summary add --no-value --python-function lldb_rust_formatters.print_val -x .* --category Rust type category enable Rust ``` Expect some rough edges with these, they have not been tested apart from there use in the autotests...
This commit is contained in:
commit
175f113cba
86 changed files with 3568 additions and 264 deletions
|
|
@ -30,7 +30,7 @@ use std::io::fs;
|
|||
use std::from_str::FromStr;
|
||||
use getopts::{optopt, optflag, reqopt};
|
||||
use common::Config;
|
||||
use common::{Pretty, DebugInfoGdb, Codegen};
|
||||
use common::{Pretty, DebugInfoGdb, DebugInfoLldb, Codegen};
|
||||
use util::logv;
|
||||
use regex::Regex;
|
||||
|
||||
|
|
@ -241,6 +241,16 @@ pub fn run_tests(config: &Config) {
|
|||
os::setenv("RUST_TEST_TASKS","1");
|
||||
}
|
||||
|
||||
match config.mode {
|
||||
DebugInfoLldb => {
|
||||
// Some older versions of LLDB seem to have problems with multiple
|
||||
// instances running in parallel, so only run one test task at a
|
||||
// time.
|
||||
os::setenv("RUST_TEST_TASKS", "1");
|
||||
}
|
||||
_ => { /* proceed */ }
|
||||
}
|
||||
|
||||
let opts = test_opts(config);
|
||||
let tests = make_tests(config);
|
||||
// sadly osx needs some file descriptor limits raised for running tests in
|
||||
|
|
|
|||
|
|
@ -536,6 +536,16 @@ fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testfile: &Path)
|
|||
// We don't want to hang when calling `quit` while the process is still running
|
||||
let mut script_str = String::from_str("settings set auto-confirm true\n");
|
||||
|
||||
// Make LLDB emit its version, so we have it documented in the test output
|
||||
script_str.push_str("version\n");
|
||||
|
||||
// Switch LLDB into "Rust mode"
|
||||
script_str.push_str("command script import ./src/etc/lldb_rust_formatters.py\n");
|
||||
script_str.push_str("type summary add --no-value ");
|
||||
script_str.push_str("--python-function lldb_rust_formatters.print_val ");
|
||||
script_str.push_str("-x \".*\" --category Rust\n");
|
||||
script_str.push_str("type category enable Rust\n");
|
||||
|
||||
// Set breakpoints on every line that contains the string "#break"
|
||||
for line in breakpoint_lines.iter() {
|
||||
script_str.push_str(format!("breakpoint set --line {}\n",
|
||||
|
|
|
|||
|
|
@ -31,9 +31,6 @@ import threading
|
|||
import re
|
||||
import atexit
|
||||
|
||||
# Terminate the debugger
|
||||
atexit.register(lambda: lldb.SBDebugger.Terminate())
|
||||
|
||||
# Set this to True for additional output
|
||||
DEBUG_OUTPUT = False
|
||||
|
||||
|
|
|
|||
232
src/etc/lldb_rust_formatters.py
Normal file
232
src/etc/lldb_rust_formatters.py
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
# Copyright 2014 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.
|
||||
|
||||
import lldb
|
||||
|
||||
def print_val(val, internal_dict):
|
||||
'''Prints the given value with Rust syntax'''
|
||||
type_class = val.GetType().GetTypeClass()
|
||||
|
||||
if type_class == lldb.eTypeClassStruct:
|
||||
return print_struct_val(val, internal_dict)
|
||||
|
||||
if type_class == lldb.eTypeClassUnion:
|
||||
return print_enum_val(val, internal_dict)
|
||||
|
||||
if type_class == lldb.eTypeClassPointer:
|
||||
return print_pointer_val(val, internal_dict)
|
||||
|
||||
if type_class == lldb.eTypeClassArray:
|
||||
return print_fixed_size_vec_val(val, internal_dict)
|
||||
|
||||
return val.GetValue()
|
||||
|
||||
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
# Type-Specialized Printing Functions
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
|
||||
def print_struct_val(val, internal_dict):
|
||||
'''Prints a struct, tuple, or tuple struct value with Rust syntax'''
|
||||
assert val.GetType().GetTypeClass() == lldb.eTypeClassStruct
|
||||
|
||||
if is_vec_slice(val):
|
||||
return print_vec_slice_val(val, internal_dict)
|
||||
else:
|
||||
return print_struct_val_starting_from(0, val, internal_dict)
|
||||
|
||||
def print_vec_slice_val(val, internal_dict):
|
||||
output = "&["
|
||||
|
||||
length = val.GetChildAtIndex(1).GetValueAsUnsigned()
|
||||
|
||||
data_ptr_val = val.GetChildAtIndex(0)
|
||||
data_ptr_type = data_ptr_val.GetType()
|
||||
assert data_ptr_type.IsPointerType()
|
||||
|
||||
element_type = data_ptr_type.GetPointeeType()
|
||||
element_type_size = element_type.GetByteSize()
|
||||
|
||||
start_address = data_ptr_val.GetValueAsUnsigned()
|
||||
|
||||
for i in range(length):
|
||||
address = start_address + i * element_type_size
|
||||
element_val = val.CreateValueFromAddress( val.GetName() + ("[%s]" % i), address, element_type )
|
||||
output += print_val(element_val, internal_dict)
|
||||
|
||||
if i != length - 1:
|
||||
output += ", "
|
||||
|
||||
output += "]"
|
||||
return output
|
||||
|
||||
def print_struct_val_starting_from(field_start_index, val, internal_dict):
|
||||
'''
|
||||
Prints a struct, tuple, or tuple struct value with Rust syntax.
|
||||
Ignores any fields before field_start_index.
|
||||
'''
|
||||
assert val.GetType().GetTypeClass() == lldb.eTypeClassStruct
|
||||
|
||||
t = val.GetType()
|
||||
has_field_names = type_has_field_names(t)
|
||||
type_name = extract_type_name(t.GetName())
|
||||
output = ""
|
||||
|
||||
if not type_name.startswith("("):
|
||||
# this is a tuple, so don't print the type name
|
||||
output += type_name
|
||||
|
||||
if has_field_names:
|
||||
output += " { \n"
|
||||
else:
|
||||
output += "("
|
||||
|
||||
num_children = val.num_children
|
||||
|
||||
for child_index in range(field_start_index, num_children):
|
||||
if has_field_names:
|
||||
field_name = t.GetFieldAtIndex(child_index).GetName()
|
||||
output += field_name + ": "
|
||||
|
||||
field_val = val.GetChildAtIndex(child_index)
|
||||
output += print_val(field_val, internal_dict)
|
||||
|
||||
if child_index != num_children - 1:
|
||||
output += ", "
|
||||
|
||||
if has_field_names:
|
||||
output += "\n"
|
||||
|
||||
if has_field_names:
|
||||
output += "}"
|
||||
else:
|
||||
output += ")"
|
||||
|
||||
return output
|
||||
|
||||
|
||||
def print_enum_val(val, internal_dict):
|
||||
'''Prints an enum value with Rust syntax'''
|
||||
|
||||
assert val.GetType().GetTypeClass() == lldb.eTypeClassUnion
|
||||
|
||||
if val.num_children == 1:
|
||||
first_variant_name = val.GetChildAtIndex(0).GetName()
|
||||
if first_variant_name and first_variant_name.startswith("RUST$ENCODED$ENUM$"):
|
||||
# Try to extract the
|
||||
|
||||
last_separator_index = first_variant_name.rfind("$")
|
||||
if last_separator_index == -1:
|
||||
return "<invalid enum encoding: %s>" % first_variant_name
|
||||
|
||||
second_last_separator_index = first_variant_name.rfind("$", 0, last_separator_index)
|
||||
if second_last_separator_index == -1:
|
||||
return "<invalid enum encoding: %s>" % first_variant_name
|
||||
|
||||
try:
|
||||
disr_field_index = first_variant_name[second_last_separator_index + 1 :
|
||||
last_separator_index]
|
||||
disr_field_index = int(disr_field_index)
|
||||
except:
|
||||
return "<invalid enum encoding: %s>" % first_variant_name
|
||||
|
||||
disr_val = val.GetChildAtIndex(0).GetChildAtIndex(disr_field_index).GetValueAsUnsigned()
|
||||
|
||||
if disr_val == 0:
|
||||
null_variant_name = first_variant_name[last_separator_index + 1:]
|
||||
return null_variant_name
|
||||
else:
|
||||
return print_struct_val_starting_from(0, val.GetChildAtIndex(0), internal_dict)
|
||||
else:
|
||||
return print_struct_val_starting_from(0, val.GetChildAtIndex(0), internal_dict)
|
||||
|
||||
# extract the discriminator value by
|
||||
disr_val = val.GetChildAtIndex(0).GetChildAtIndex(0)
|
||||
disr_type = disr_val.GetType()
|
||||
|
||||
if disr_type.GetTypeClass() != lldb.eTypeClassEnumeration:
|
||||
return "<Invalid enum value encountered: Discriminator is not an enum>"
|
||||
|
||||
variant_index = disr_val.GetValueAsUnsigned()
|
||||
return print_struct_val_starting_from(1, val.GetChildAtIndex(variant_index), internal_dict)
|
||||
|
||||
|
||||
def print_pointer_val(val, internal_dict):
|
||||
'''Prints a pointer value with Rust syntax'''
|
||||
assert val.GetType().IsPointerType()
|
||||
sigil = "&"
|
||||
type_name = extract_type_name(val.GetType().GetName())
|
||||
if type_name and type_name[0:1] in ["&", "~", "*"]:
|
||||
sigil = type_name[0:1]
|
||||
|
||||
return sigil + hex(val.GetValueAsUnsigned()) #print_val(val.Dereference(), internal_dict)
|
||||
|
||||
|
||||
def print_fixed_size_vec_val(val, internal_dict):
|
||||
assert val.GetType().GetTypeClass() == lldb.eTypeClassArray
|
||||
|
||||
output = "["
|
||||
|
||||
for i in range(val.num_children):
|
||||
output += print_val(val.GetChildAtIndex(i), internal_dict)
|
||||
if i != val.num_children - 1:
|
||||
output += ", "
|
||||
|
||||
output += "]"
|
||||
return output
|
||||
|
||||
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
# Helper Functions
|
||||
#=--------------------------------------------------------------------------------------------------
|
||||
|
||||
unqualified_type_markers = frozenset(["(", "[", "&", "*"])
|
||||
|
||||
def extract_type_name(qualified_type_name):
|
||||
'''Extracts the type name from a fully qualified path'''
|
||||
if qualified_type_name[0] in unqualified_type_markers:
|
||||
return qualified_type_name
|
||||
|
||||
end_of_search = qualified_type_name.find("<")
|
||||
if end_of_search < 0:
|
||||
end_of_search = len(qualified_type_name)
|
||||
|
||||
index = qualified_type_name.rfind("::", 0, end_of_search)
|
||||
if index < 0:
|
||||
return qualified_type_name
|
||||
else:
|
||||
return qualified_type_name[index + 2:]
|
||||
|
||||
|
||||
def type_has_field_names(ty):
|
||||
'''Returns true of this is a type with field names (struct, struct-like enum variant)'''
|
||||
# This may also be an enum variant where the first field doesn't have a name but the rest has
|
||||
if ty.GetNumberOfFields() > 1:
|
||||
return ty.GetFieldAtIndex(1).GetName() != None
|
||||
else:
|
||||
return ty.GetFieldAtIndex(0).GetName() != None
|
||||
|
||||
|
||||
def is_vec_slice(val):
|
||||
ty = val.GetType()
|
||||
if ty.GetTypeClass() != lldb.eTypeClassStruct:
|
||||
return False
|
||||
|
||||
if ty.GetNumberOfFields() != 2:
|
||||
return False
|
||||
|
||||
if ty.GetFieldAtIndex(0).GetName() != "data_ptr":
|
||||
return False
|
||||
|
||||
if ty.GetFieldAtIndex(1).GetName() != "length":
|
||||
return False
|
||||
|
||||
type_name = extract_type_name(ty.GetName()).replace("&'static", "&").replace(" ", "")
|
||||
return type_name.startswith("&[") and type_name.endswith("]")
|
||||
|
|
@ -17,6 +17,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -49,6 +52,42 @@
|
|||
// gdb-command:print f64
|
||||
// gdb-check:$14 = 3.5
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:print i
|
||||
// lldb-check:[...]$1 = -1
|
||||
|
||||
// NOTE: LLDB does not support 32bit chars
|
||||
// d ebugger:print (uint)(c)
|
||||
// c heck:$3 = 97
|
||||
|
||||
// lldb-command:print i8
|
||||
// lldb-check:[...]$2 = 'D'
|
||||
// lldb-command:print i16
|
||||
// lldb-check:[...]$3 = -16
|
||||
// lldb-command:print i32
|
||||
// lldb-check:[...]$4 = -32
|
||||
// lldb-command:print i64
|
||||
// lldb-check:[...]$5 = -64
|
||||
// lldb-command:print u
|
||||
// lldb-check:[...]$6 = 1
|
||||
// lldb-command:print u8
|
||||
// lldb-check:[...]$7 = 'd'
|
||||
// lldb-command:print u16
|
||||
// lldb-check:[...]$8 = 16
|
||||
// lldb-command:print u32
|
||||
// lldb-check:[...]$9 = 32
|
||||
// lldb-command:print u64
|
||||
// lldb-check:[...]$10 = 64
|
||||
// lldb-command:print f32
|
||||
// lldb-check:[...]$11 = 2.5
|
||||
// lldb-command:print f64
|
||||
// lldb-check:[...]$12 = 3.5
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
fn main() {
|
||||
|
|
@ -66,7 +105,7 @@ fn main() {
|
|||
let u64: u64 = 64;
|
||||
let f32: f32 = 2.5;
|
||||
let f64: f64 = 3.5;
|
||||
_zzz();
|
||||
_zzz(); // #break
|
||||
}
|
||||
|
||||
fn _zzz() {()}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@
|
|||
// its numerical value.
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -59,6 +62,53 @@
|
|||
// gdb-command:print *f64_ref
|
||||
// gdb-check:$14 = 3.5
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
// lldb-command:print *bool_ref
|
||||
// lldb-check:[...]$0 = true
|
||||
|
||||
// lldb-command:print *int_ref
|
||||
// lldb-check:[...]$1 = -1
|
||||
|
||||
// NOTE: lldb doesn't support 32bit chars at the moment
|
||||
// d ebugger:print *char_ref
|
||||
// c heck:[...]$x = 97
|
||||
|
||||
// lldb-command:print *i8_ref
|
||||
// lldb-check:[...]$2 = 'D'
|
||||
|
||||
// lldb-command:print *i16_ref
|
||||
// lldb-check:[...]$3 = -16
|
||||
|
||||
// lldb-command:print *i32_ref
|
||||
// lldb-check:[...]$4 = -32
|
||||
|
||||
// lldb-command:print *i64_ref
|
||||
// lldb-check:[...]$5 = -64
|
||||
|
||||
// lldb-command:print *uint_ref
|
||||
// lldb-check:[...]$6 = 1
|
||||
|
||||
// lldb-command:print *u8_ref
|
||||
// lldb-check:[...]$7 = 'd'
|
||||
|
||||
// lldb-command:print *u16_ref
|
||||
// lldb-check:[...]$8 = 16
|
||||
|
||||
// lldb-command:print *u32_ref
|
||||
// lldb-check:[...]$9 = 32
|
||||
|
||||
// lldb-command:print *u64_ref
|
||||
// lldb-check:[...]$10 = 64
|
||||
|
||||
// lldb-command:print *f32_ref
|
||||
// lldb-check:[...]$11 = 2.5
|
||||
|
||||
// lldb-command:print *f64_ref
|
||||
// lldb-check:[...]$12 = 3.5
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
fn main() {
|
||||
|
|
@ -103,7 +153,8 @@ fn main() {
|
|||
|
||||
let f64_val: f64 = 3.5;
|
||||
let f64_ref: &f64 = &f64_val;
|
||||
zzz();
|
||||
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -24,6 +27,20 @@
|
|||
// gdb-command:print *the_c_ref
|
||||
// gdb-check:$3 = TheC
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *the_a_ref
|
||||
// lldb-check:[...]$0 = TheA
|
||||
|
||||
// lldb-command:print *the_b_ref
|
||||
// lldb-check:[...]$1 = TheB
|
||||
|
||||
// lldb-command:print *the_c_ref
|
||||
// lldb-check:[...]$2 = TheC
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
enum ABC { TheA, TheB, TheC }
|
||||
|
|
@ -38,7 +55,7 @@ fn main() {
|
|||
let the_c = TheC;
|
||||
let the_c_ref: &ABC = &the_c;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -24,6 +27,18 @@
|
|||
// gdb-command:print *univariant_ref
|
||||
// gdb-check:$3 = {{4820353753753434}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *the_a_ref
|
||||
// lldb-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 }
|
||||
// lldb-command:print *the_b_ref
|
||||
// lldb-check:[...]$1 = TheB(0, 286331153, 286331153)
|
||||
// lldb-command:print *univariant_ref
|
||||
// lldb-check:[...]$2 = TheOnlyCase(4820353753753434)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![feature(struct_variant)]
|
||||
|
||||
|
|
@ -59,7 +74,7 @@ fn main() {
|
|||
let univariant = TheOnlyCase(4820353753753434);
|
||||
let univariant_ref: &Univariant = &univariant;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@
|
|||
// its numerical value.
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -61,6 +64,56 @@
|
|||
// gdb-command:print *f64_ref
|
||||
// gdb-check:$14 = 3.5
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:type format add -f decimal char
|
||||
// lldb-command:type format add -f decimal 'unsigned char'
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *bool_ref
|
||||
// lldb-check:[...]$0 = true
|
||||
|
||||
// lldb-command:print *int_ref
|
||||
// lldb-check:[...]$1 = -1
|
||||
|
||||
// LLDB can't handle 32bit chars yet
|
||||
// d ebugger:print *char_ref
|
||||
// c heck:[...]$x = 97
|
||||
|
||||
// lldb-command:print *i8_ref
|
||||
// lldb-check:[...]$2 = 68
|
||||
|
||||
// lldb-command:print *i16_ref
|
||||
// lldb-check:[...]$3 = -16
|
||||
|
||||
// lldb-command:print *i32_ref
|
||||
// lldb-check:[...]$4 = -32
|
||||
|
||||
// lldb-command:print *i64_ref
|
||||
// lldb-check:[...]$5 = -64
|
||||
|
||||
// lldb-command:print *uint_ref
|
||||
// lldb-check:[...]$6 = 1
|
||||
|
||||
// lldb-command:print *u8_ref
|
||||
// lldb-check:[...]$7 = 100
|
||||
|
||||
// lldb-command:print *u16_ref
|
||||
// lldb-check:[...]$8 = 16
|
||||
|
||||
// lldb-command:print *u32_ref
|
||||
// lldb-check:[...]$9 = 32
|
||||
|
||||
// lldb-command:print *u64_ref
|
||||
// lldb-check:[...]$10 = 64
|
||||
|
||||
// lldb-command:print *f32_ref
|
||||
// lldb-check:[...]$11 = 2.5
|
||||
|
||||
// lldb-command:print *f64_ref
|
||||
// lldb-check:[...]$12 = 3.5
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
use std::gc::{Gc, GC};
|
||||
|
|
@ -107,7 +160,8 @@ fn main() {
|
|||
|
||||
let f64_box: Gc<f64> = box(GC) 3.5;
|
||||
let f64_ref: &f64 = f64_box;
|
||||
zzz();
|
||||
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@
|
|||
// except according to those terms.
|
||||
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -45,6 +47,41 @@
|
|||
// gdb-command:print *unique_val_interior_ref_2
|
||||
// gdb-check:$10 = 26.5
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *stack_val_ref
|
||||
// lldb-check:[...]$0 = SomeStruct { x: 10, y: 23.5 }
|
||||
|
||||
// lldb-command:print *stack_val_interior_ref_1
|
||||
// lldb-check:[...]$1 = 10
|
||||
|
||||
// lldb-command:print *stack_val_interior_ref_2
|
||||
// lldb-check:[...]$2 = 23.5
|
||||
|
||||
// lldb-command:print *ref_to_unnamed
|
||||
// lldb-check:[...]$3 = SomeStruct { x: 11, y: 24.5 }
|
||||
|
||||
// lldb-command:print *managed_val_ref
|
||||
// lldb-check:[...]$4 = SomeStruct { x: 12, y: 25.5 }
|
||||
|
||||
// lldb-command:print *managed_val_interior_ref_1
|
||||
// lldb-check:[...]$5 = 12
|
||||
|
||||
// lldb-command:print *managed_val_interior_ref_2
|
||||
// lldb-check:[...]$6 = 25.5
|
||||
|
||||
// lldb-command:print *unique_val_ref
|
||||
// lldb-check:[...]$7 = SomeStruct { x: 13, y: 26.5 }
|
||||
|
||||
// lldb-command:print *unique_val_interior_ref_1
|
||||
// lldb-check:[...]$8 = 13
|
||||
|
||||
// lldb-command:print *unique_val_interior_ref_2
|
||||
// lldb-check:[...]$9 = 26.5
|
||||
|
||||
#![feature(managed_boxes)]
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
|
@ -72,7 +109,7 @@ fn main() {
|
|||
let unique_val_interior_ref_1: &int = &unique_val.x;
|
||||
let unique_val_interior_ref_2: &f64 = &unique_val.y;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
#![feature(managed_boxes)]
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -29,6 +32,24 @@
|
|||
// gdb-command:print *unique_val_ref
|
||||
// gdb-check:$4 = {-17, -22}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *stack_val_ref
|
||||
// lldb-check:[...]$0 = (-14, -19)
|
||||
|
||||
// lldb-command:print *ref_to_unnamed
|
||||
// lldb-check:[...]$1 = (-15, -20)
|
||||
|
||||
// lldb-command:print *managed_val_ref
|
||||
// lldb-check:[...]$2 = (-16, -21)
|
||||
|
||||
// lldb-command:print *unique_val_ref
|
||||
// lldb-check:[...]$3 = (-17, -22)
|
||||
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
use std::gc::{Gc, GC};
|
||||
|
|
@ -44,7 +65,7 @@ fn main() {
|
|||
let unique_val: Box<(i16, f32)> = box() (-17, -22f32);
|
||||
let unique_val_ref: &(i16, f32) = unique_val;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@
|
|||
// its numerical value.
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -59,6 +62,55 @@
|
|||
// gdb-command:print *f64_ref
|
||||
// gdb-check:$14 = 3.5
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:type format add -f decimal char
|
||||
// lldb-command:type format add -f decimal 'unsigned char'
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *bool_ref
|
||||
// lldb-check:[...]$0 = true
|
||||
|
||||
// lldb-command:print *int_ref
|
||||
// lldb-check:[...]$1 = -1
|
||||
|
||||
// d ebugger:print *char_ref
|
||||
// c heck:[...]$3 = 97
|
||||
|
||||
// lldb-command:print *i8_ref
|
||||
// lldb-check:[...]$2 = 68
|
||||
|
||||
// lldb-command:print *i16_ref
|
||||
// lldb-check:[...]$3 = -16
|
||||
|
||||
// lldb-command:print *i32_ref
|
||||
// lldb-check:[...]$4 = -32
|
||||
|
||||
// lldb-command:print *i64_ref
|
||||
// lldb-check:[...]$5 = -64
|
||||
|
||||
// lldb-command:print *uint_ref
|
||||
// lldb-check:[...]$6 = 1
|
||||
|
||||
// lldb-command:print *u8_ref
|
||||
// lldb-check:[...]$7 = 100
|
||||
|
||||
// lldb-command:print *u16_ref
|
||||
// lldb-check:[...]$8 = 16
|
||||
|
||||
// lldb-command:print *u32_ref
|
||||
// lldb-check:[...]$9 = 32
|
||||
|
||||
// lldb-command:print *u64_ref
|
||||
// lldb-check:[...]$10 = 64
|
||||
|
||||
// lldb-command:print *f32_ref
|
||||
// lldb-check:[...]$11 = 2.5
|
||||
|
||||
// lldb-command:print *f64_ref
|
||||
// lldb-check:[...]$12 = 3.5
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
||||
|
|
@ -104,7 +156,8 @@ fn main() {
|
|||
|
||||
let f64_box: Box<f64> = box 3.5;
|
||||
let f64_ref: &f64 = f64_box;
|
||||
zzz();
|
||||
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -24,6 +27,19 @@
|
|||
// gdb-command:print d->val
|
||||
// gdb-check:$4 = false
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
// lldb-command:print *a
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print *b
|
||||
// lldb-check:[...]$1 = (2, 3.5)
|
||||
// lldb-command:print c->val
|
||||
// lldb-check:[...]$2 = 4
|
||||
// lldb-command:print d->val
|
||||
// lldb-check:[...]$3 = false
|
||||
|
||||
#![feature(managed_boxes)]
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
|
@ -34,7 +50,8 @@ fn main() {
|
|||
let b = box() (2i, 3.5f64);
|
||||
let c = box(GC) 4i;
|
||||
let d = box(GC) false;
|
||||
_zzz();
|
||||
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn _zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -27,6 +30,23 @@
|
|||
// gdb-command:print managed_dtor->val
|
||||
// gdb-check:$4 = {x = 33, y = 333, z = 3333, w = 33333}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *unique
|
||||
// lldb-check:[...]$0 = StructWithSomePadding { x: 99, y: 999, z: 9999, w: 99999 }
|
||||
|
||||
// lldb-command:print managed->val
|
||||
// lldb-check:[...]$1 = StructWithSomePadding { x: 88, y: 888, z: 8888, w: 88888 }
|
||||
|
||||
// lldb-command:print *unique_dtor
|
||||
// lldb-check:[...]$2 = StructWithDestructor { x: 77, y: 777, z: 7777, w: 77777 }
|
||||
|
||||
// lldb-command:print managed_dtor->val
|
||||
// lldb-check:[...]$3 = StructWithDestructor { x: 33, y: 333, z: 3333, w: 33333 }
|
||||
|
||||
#![feature(managed_boxes)]
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
|
@ -58,7 +78,7 @@ fn main() {
|
|||
let unique_dtor = box StructWithDestructor { x: 77, y: 777, z: 7777, w: 77777 };
|
||||
let managed_dtor = box(GC) StructWithDestructor { x: 33, y: 333, z: 3333, w: 33333 };
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -43,6 +46,35 @@
|
|||
// gdb-check:$7 = {{Case1, x = 0, y = 8970181431921507452}, {Case1, 0, 2088533116, 2088533116}}
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print s
|
||||
// lldb-check:[...]$0 = Struct { a: 1, b: 2.5 }
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = Struct { a: 3, b: 4.5 }
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$2 = 5
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$3 = 6.5
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$4 = (7, 8, 9.5, 10.5)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$5 = Newtype(11.5, 12.5, 13, 14)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = Case1 { x: 0, y: 8970181431921507452 }
|
||||
// lldb-command:continue
|
||||
|
||||
#![feature(struct_variant)]
|
||||
|
||||
#[deriving(Clone)]
|
||||
|
|
@ -58,21 +90,21 @@ struct StructStruct {
|
|||
}
|
||||
|
||||
fn fun(s: Struct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn fun_fun(StructStruct { a: x, b: Struct { a: y, b: z } }: StructStruct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn tup(a: (int, uint, f64, f64)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
struct Newtype(f64, f64, int, uint);
|
||||
|
||||
fn new_type(a: Newtype) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
// The first element is to ensure proper alignment, irrespective of the machines word size. Since
|
||||
|
|
@ -84,7 +116,7 @@ enum Enum {
|
|||
}
|
||||
|
||||
fn by_val_enum(x: Enum) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
|
@ -100,4 +132,4 @@ fn main() {
|
|||
by_val_enum(Case1 { x: 0, y: 8970181431921507452 });
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
#![feature(managed_boxes)]
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -36,6 +39,27 @@
|
|||
// gdb-check:$4 = 8888
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$0 = 1111
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$1 = Struct { x: 2222, y: 3333 }
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$2 = (4444.5, 5555, 6666, 7777.5)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print self->val
|
||||
// lldb-check:[...]$3 = 8888
|
||||
// lldb-command:continue
|
||||
|
||||
use std::gc::{Gc, GC};
|
||||
|
||||
trait Trait {
|
||||
|
|
@ -44,7 +68,7 @@ trait Trait {
|
|||
|
||||
impl Trait for int {
|
||||
fn method(self) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self
|
||||
}
|
||||
}
|
||||
|
|
@ -56,21 +80,21 @@ struct Struct {
|
|||
|
||||
impl Trait for Struct {
|
||||
fn method(self) -> Struct {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl Trait for (f64, int, int, f64) {
|
||||
fn method(self) -> (f64, int, int, f64) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl Trait for Gc<int> {
|
||||
fn method(self) -> Gc<int> {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self
|
||||
}
|
||||
}
|
||||
|
|
@ -82,4 +106,4 @@ fn main() {
|
|||
let _ = (box(GC) 8888).method();
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -8,9 +8,13 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// ignore-tidy-linelength
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -36,6 +40,31 @@
|
|||
// gdb-command:print struct_with_drop
|
||||
// gdb-check:$7 = {{a = OneHundred, b = Vienna}, 9}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print tuple_interior_padding
|
||||
// lldb-check:[...]$0 = (0, OneHundred)
|
||||
|
||||
// lldb-command:print tuple_padding_at_end
|
||||
// lldb-check:[...]$1 = ((1, OneThousand), 2)
|
||||
// lldb-command:print tuple_different_enums
|
||||
// lldb-check:[...]$2 = (OneThousand, MountainView, OneMillion, Vienna)
|
||||
|
||||
// lldb-command:print padded_struct
|
||||
// lldb-check:[...]$3 = PaddedStruct { a: 3, b: OneMillion, c: 4, d: Toronto, e: 5 }
|
||||
|
||||
// lldb-command:print packed_struct
|
||||
// lldb-check:[...]$4 = PackedStruct { a: 6, b: OneHundred, c: 7, d: Vienna, e: 8 }
|
||||
|
||||
// lldb-command:print non_padded_struct
|
||||
// lldb-check:[...]$5 = NonPaddedStruct { a: OneMillion, b: MountainView, c: OneThousand, d: Toronto }
|
||||
|
||||
// lldb-command:print struct_with_drop
|
||||
// lldb-check:[...]$6 = (StructWithDrop { a: OneHundred, b: Vienna }, 9)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
enum AnEnum {
|
||||
|
|
@ -115,7 +144,7 @@ fn main() {
|
|||
|
||||
let struct_with_drop = (StructWithDrop { a: OneHundred, b: Vienna }, 9_i64);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
|
||||
// gdb-command:print 'c-style-enum::SINGLE_VARIANT'
|
||||
|
|
@ -71,6 +74,32 @@
|
|||
// gdb-command:print 'c-style-enum::MANUAL_THREE'
|
||||
// gdb-check:$18 = OneMillion
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print auto_one
|
||||
// lldb-check:[...]$0 = One
|
||||
|
||||
// lldb-command:print auto_two
|
||||
// lldb-check:[...]$1 = Two
|
||||
|
||||
// lldb-command:print auto_three
|
||||
// lldb-check:[...]$2 = Three
|
||||
|
||||
// lldb-command:print manual_one_hundred
|
||||
// lldb-check:[...]$3 = OneHundred
|
||||
|
||||
// lldb-command:print manual_one_thousand
|
||||
// lldb-check:[...]$4 = OneThousand
|
||||
|
||||
// lldb-command:print manual_one_million
|
||||
// lldb-check:[...]$5 = OneMillion
|
||||
|
||||
// lldb-command:print single_variant
|
||||
// lldb-check:[...]$6 = TheOnlyVariant
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
|
|
@ -120,11 +149,11 @@ fn main() {
|
|||
MANUAL_THREE = OneMillion;
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
|
||||
let a = SINGLE_VARIANT;
|
||||
let a = unsafe { AUTO_ONE };
|
||||
let a = unsafe { MANUAL_ONE };
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -28,10 +31,27 @@
|
|||
// gdb-check:$4 = 110
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = 0.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *x
|
||||
// lldb-check:[...]$2 = 29
|
||||
// lldb-command:print *y
|
||||
// lldb-check:[...]$3 = 110
|
||||
// lldb-command:continue
|
||||
|
||||
fn some_generic_fun<T1, T2>(a: T1, b: T2) -> (T2, T1) {
|
||||
|
||||
let closure = |x, y| {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
(y, x)
|
||||
};
|
||||
|
||||
|
|
@ -43,4 +63,4 @@ fn main() {
|
|||
some_generic_fun(&29i, box 110i);
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -181,6 +184,154 @@
|
|||
// gdb-check:$49 = 62
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$2 = 2
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$3 = 3
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$4 = 4
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$5 = 5
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$6 = (6, 7)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print h
|
||||
// lldb-check:[...]$7 = 8
|
||||
// lldb-command:print i
|
||||
// lldb-check:[...]$8 = Struct { a: 9, b: 10 }
|
||||
// lldb-command:print j
|
||||
// lldb-check:[...]$9 = 11
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print k
|
||||
// lldb-check:[...]$10 = 12
|
||||
// lldb-command:print l
|
||||
// lldb-check:[...]$11 = 13
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print m
|
||||
// lldb-check:[...]$12 = 14
|
||||
// lldb-command:print n
|
||||
// lldb-check:[...]$13 = 16
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print o
|
||||
// lldb-check:[...]$14 = 18
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print p
|
||||
// lldb-check:[...]$15 = 19
|
||||
// lldb-command:print q
|
||||
// lldb-check:[...]$16 = 20
|
||||
// lldb-command:print r
|
||||
// lldb-check:[...]$17 = Struct { a: 21, b: 22 }
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print s
|
||||
// lldb-check:[...]$18 = 24
|
||||
// lldb-command:print t
|
||||
// lldb-check:[...]$19 = 23
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print u
|
||||
// lldb-check:[...]$20 = 25
|
||||
// lldb-command:print v
|
||||
// lldb-check:[...]$21 = 26
|
||||
// lldb-command:print w
|
||||
// lldb-check:[...]$22 = 27
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$23 = 28
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$24 = 29
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$25 = 30
|
||||
// lldb-command:print ae
|
||||
// lldb-check:[...]$26 = 31
|
||||
// lldb-command:print oe
|
||||
// lldb-check:[...]$27 = 32
|
||||
// lldb-command:print ue
|
||||
// lldb-check:[...]$28 = 33
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print aa
|
||||
// lldb-check:[...]$29 = (34, 35)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print bb
|
||||
// lldb-check:[...]$30 = (36, 37)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print cc
|
||||
// lldb-check:[...]$31 = 38
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print dd
|
||||
// lldb-check:[...]$32 = (40, 41, 42)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *ee
|
||||
// lldb-check:[...]$33 = (43, 44, 45)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *ff
|
||||
// lldb-check:[...]$34 = 46
|
||||
// lldb-command:print gg
|
||||
// lldb-check:[...]$35 = (47, 48)
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *hh
|
||||
// lldb-check:[...]$36 = 50
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print ii
|
||||
// lldb-check:[...]$37 = 51
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *jj
|
||||
// lldb-check:[...]$38 = 52
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print kk
|
||||
// lldb-check:[...]$39 = 53
|
||||
// lldb-command:print ll
|
||||
// lldb-check:[...]$40 = 54
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print mm
|
||||
// lldb-check:[...]$41 = 55
|
||||
// lldb-command:print *nn
|
||||
// lldb-check:[...]$42 = 56
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print oo
|
||||
// lldb-check:[...]$43 = 57
|
||||
// lldb-command:print pp
|
||||
// lldb-check:[...]$44 = 58
|
||||
// lldb-command:print qq
|
||||
// lldb-check:[...]$45 = 59
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print rr
|
||||
// lldb-check:[...]$46 = 60
|
||||
// lldb-command:print ss
|
||||
// lldb-check:[...]$47 = 61
|
||||
// lldb-command:print tt
|
||||
// lldb-check:[...]$48 = 62
|
||||
// lldb-command:continue
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
||||
|
|
@ -197,93 +348,93 @@ struct TupleStruct (f64, int);
|
|||
|
||||
|
||||
fn simple_tuple((a, b): (int, bool)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn nested_tuple((a, (b, c)): (int, (u16, u16))) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn destructure_only_first_level((a, b): (int, (u32, u32))) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn struct_as_tuple_element((h, i, j): (i16, Struct, i16)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn struct_pattern(Struct { a: k, b: l }: Struct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn ignored_tuple_element((m, _, n): (int, u16, i32)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn ignored_struct_field(Struct { b: o, .. }: Struct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn one_struct_destructured_one_not((Struct { a: p, b: q }, r): (Struct, Struct)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn different_order_of_struct_fields(Struct { b: s, a: t }: Struct ) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn complex_nesting(((u, v ), ((w, (x, Struct { a: y, b: z})), Struct { a: ae, b: oe }), ue ):
|
||||
((i16, i32), ((i64, (i32, Struct, )), Struct ), u16))
|
||||
{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn managed_box(&aa: &(int, int)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn borrowed_pointer(&bb: &(int, int)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn contained_borrowed_pointer((&cc, _): (&int, int)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn unique_pointer(box dd: Box<(int, int, int)>) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn ref_binding(ref ee: (int, int, int)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn ref_binding_in_tuple((ref ff, gg): (int, (int, int))) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn ref_binding_in_struct(Struct { b: ref hh, .. }: Struct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn univariant_enum(Unit(ii): Univariant) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn univariant_enum_with_ref_binding(Unit(ref jj): Univariant) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn tuple_struct(TupleStruct(kk, ll): TupleStruct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn tuple_struct_with_ref_binding(TupleStruct(mm, ref nn): TupleStruct) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn multiple_arguments((oo, pp): (int, int), qq : int) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
|
@ -311,11 +462,10 @@ fn main() {
|
|||
multiple_arguments((57, 58), 59);
|
||||
|
||||
fn nested_function(rr: int, (ss, tt): (int, int)) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
nested_function(60, (61, 62));
|
||||
}
|
||||
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -125,6 +128,122 @@
|
|||
// gdb-command:print *nn
|
||||
// gdb-check:$43 = 56
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = false
|
||||
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$2 = 2
|
||||
// lldb-command:print d
|
||||
// lldb-check:[...]$3 = 3
|
||||
// lldb-command:print e
|
||||
// lldb-check:[...]$4 = 4
|
||||
|
||||
// lldb-command:print f
|
||||
// lldb-check:[...]$5 = 5
|
||||
// lldb-command:print g
|
||||
// lldb-check:[...]$6 = (6, 7)
|
||||
|
||||
// lldb-command:print h
|
||||
// lldb-check:[...]$7 = 8
|
||||
// lldb-command:print i
|
||||
// lldb-check:[...]$8 = Struct { a: 9, b: 10 }
|
||||
// lldb-command:print j
|
||||
// lldb-check:[...]$9 = 11
|
||||
|
||||
// lldb-command:print k
|
||||
// lldb-check:[...]$10 = 12
|
||||
// lldb-command:print l
|
||||
// lldb-check:[...]$11 = 13
|
||||
|
||||
// lldb-command:print m
|
||||
// lldb-check:[...]$12 = 14
|
||||
// lldb-command:print n
|
||||
// lldb-check:[...]$13 = 16
|
||||
|
||||
// lldb-command:print o
|
||||
// lldb-check:[...]$14 = 18
|
||||
|
||||
// lldb-command:print p
|
||||
// lldb-check:[...]$15 = 19
|
||||
// lldb-command:print q
|
||||
// lldb-check:[...]$16 = 20
|
||||
// lldb-command:print r
|
||||
// lldb-check:[...]$17 = Struct { a: 21, b: 22 }
|
||||
|
||||
// lldb-command:print s
|
||||
// lldb-check:[...]$18 = 24
|
||||
// lldb-command:print t
|
||||
// lldb-check:[...]$19 = 23
|
||||
|
||||
// lldb-command:print u
|
||||
// lldb-check:[...]$20 = 25
|
||||
// lldb-command:print v
|
||||
// lldb-check:[...]$21 = 26
|
||||
// lldb-command:print w
|
||||
// lldb-check:[...]$22 = 27
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$23 = 28
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$24 = 29
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$25 = 30
|
||||
// lldb-command:print ae
|
||||
// lldb-check:[...]$26 = 31
|
||||
// lldb-command:print oe
|
||||
// lldb-check:[...]$27 = 32
|
||||
// lldb-command:print ue
|
||||
// lldb-check:[...]$28 = 33
|
||||
|
||||
// lldb-command:print aa
|
||||
// lldb-check:[...]$29 = (34, 35)
|
||||
|
||||
// lldb-command:print bb
|
||||
// lldb-check:[...]$30 = (36, 37)
|
||||
|
||||
// lldb-command:print cc
|
||||
// lldb-check:[...]$31 = 38
|
||||
|
||||
// lldb-command:print dd
|
||||
// lldb-check:[...]$32 = (40, 41, 42)
|
||||
|
||||
// lldb-command:print *ee
|
||||
// lldb-check:[...]$33 = (43, 44, 45)
|
||||
|
||||
// lldb-command:print *ff
|
||||
// lldb-check:[...]$34 = 46
|
||||
|
||||
// lldb-command:print gg
|
||||
// lldb-check:[...]$35 = (47, 48)
|
||||
|
||||
// lldb-command:print *hh
|
||||
// lldb-check:[...]$36 = 50
|
||||
|
||||
// lldb-command:print ii
|
||||
// lldb-check:[...]$37 = 51
|
||||
|
||||
// lldb-command:print *jj
|
||||
// lldb-check:[...]$38 = 52
|
||||
|
||||
// lldb-command:print kk
|
||||
// lldb-check:[...]$39 = 53
|
||||
|
||||
// lldb-command:print ll
|
||||
// lldb-check:[...]$40 = 54
|
||||
|
||||
// lldb-command:print mm
|
||||
// lldb-check:[...]$41 = 55
|
||||
|
||||
// lldb-command:print *nn
|
||||
// lldb-check:[...]$42 = 56
|
||||
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct Struct {
|
||||
|
|
@ -204,7 +323,7 @@ fn main() {
|
|||
// tuple struct with ref binding
|
||||
let &TupleStruct(mm, ref nn) = &TupleStruct(55.0, 56);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -30,6 +33,25 @@
|
|||
// gdb-command:print struct_padded_at_end
|
||||
// gdb-check:$5 = {x = {22, 23}, y = {24, 25}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print no_padding1
|
||||
// lldb-check:[...]$0 = NoPadding1 { x: [0, 1, 2], y: -3, z: [4.5, 5.5] }
|
||||
// lldb-command:print no_padding2
|
||||
// lldb-check:[...]$1 = NoPadding2 { x: [6, 7, 8], y: [[9, 10], [11, 12]] }
|
||||
|
||||
// lldb-command:print struct_internal_padding
|
||||
// lldb-check:[...]$2 = StructInternalPadding { x: [13, 14], y: [15, 16] }
|
||||
|
||||
// lldb-command:print single_vec
|
||||
// lldb-check:[...]$3 = SingleVec { x: [17, 18, 19, 20, 21] }
|
||||
|
||||
// lldb-command:print struct_padded_at_end
|
||||
// lldb-check:[...]$4 = StructPaddedAtEnd { x: [22, 23], y: [24, 25] }
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct NoPadding1 {
|
||||
|
|
@ -84,7 +106,7 @@ fn main() {
|
|||
y: [24, 25]
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -18,18 +18,19 @@
|
|||
|
||||
// compile-flags:-g
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:break function-arg-initialization.rs:139
|
||||
// gdb-command:break function-arg-initialization.rs:154
|
||||
// gdb-command:break function-arg-initialization.rs:158
|
||||
// gdb-command:break function-arg-initialization.rs:162
|
||||
// gdb-command:break function-arg-initialization.rs:166
|
||||
// gdb-command:break function-arg-initialization.rs:170
|
||||
// gdb-command:break function-arg-initialization.rs:174
|
||||
// gdb-command:break function-arg-initialization.rs:178
|
||||
// gdb-command:break function-arg-initialization.rs:182
|
||||
// gdb-command:break function-arg-initialization.rs:190
|
||||
// gdb-command:break function-arg-initialization.rs:197
|
||||
// gdb-command:break function-arg-initialization.rs:243
|
||||
// gdb-command:break function-arg-initialization.rs:258
|
||||
// gdb-command:break function-arg-initialization.rs:262
|
||||
// gdb-command:break function-arg-initialization.rs:266
|
||||
// gdb-command:break function-arg-initialization.rs:270
|
||||
// gdb-command:break function-arg-initialization.rs:274
|
||||
// gdb-command:break function-arg-initialization.rs:278
|
||||
// gdb-command:break function-arg-initialization.rs:282
|
||||
// gdb-command:break function-arg-initialization.rs:286
|
||||
// gdb-command:break function-arg-initialization.rs:294
|
||||
// gdb-command:break function-arg-initialization.rs:301
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -130,13 +131,116 @@
|
|||
// gdb-check:$32 = 45
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// IMMEDIATE ARGS
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$2 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
// NON IMMEDIATE ARGS
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$3 = BigStruct { a: 3, b: 4, c: 5, d: 6, e: 7, f: 8, g: 9, h: 10 }
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$4 = BigStruct { a: 11, b: 12, c: 13, d: 14, e: 15, f: 16, g: 17, h: 18 }
|
||||
// lldb-command:continue
|
||||
|
||||
// BINDING
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$5 = 19
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$6 = 20
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$7 = 21.5
|
||||
// lldb-command:continue
|
||||
|
||||
// ASSIGNMENT
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$8 = 22
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$9 = 23
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$10 = 24.5
|
||||
// lldb-command:continue
|
||||
|
||||
// FUNCTION CALL
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$11 = 25
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$12 = 26
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$13 = 27.5
|
||||
// lldb-command:continue
|
||||
|
||||
// EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$14 = 28
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$15 = 29
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$16 = 30.5
|
||||
// lldb-command:continue
|
||||
|
||||
// RETURN EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$17 = 31
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$18 = 32
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$19 = 33.5
|
||||
// lldb-command:continue
|
||||
|
||||
// ARITHMETIC EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$20 = 34
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$21 = 35
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$22 = 36.5
|
||||
// lldb-command:continue
|
||||
|
||||
// IF EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$23 = 37
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$24 = 38
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$25 = 39.5
|
||||
// lldb-command:continue
|
||||
|
||||
// WHILE EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$26 = 40
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$27 = 41
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$28 = 42
|
||||
// lldb-command:continue
|
||||
|
||||
// LOOP EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$29 = 43
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$30 = 44
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$31 = 45
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
||||
|
||||
|
||||
fn immediate_args(a: int, b: bool, c: f64) {
|
||||
()
|
||||
() // #break
|
||||
}
|
||||
|
||||
struct BigStruct {
|
||||
|
|
@ -151,35 +255,35 @@ struct BigStruct {
|
|||
}
|
||||
|
||||
fn non_immediate_args(a: BigStruct, b: BigStruct) {
|
||||
()
|
||||
() // #break
|
||||
}
|
||||
|
||||
fn binding(a: i64, b: u64, c: f64) {
|
||||
let x = 0i;
|
||||
let x = 0i; // #break
|
||||
}
|
||||
|
||||
fn assignment(mut a: u64, b: u64, c: f64) {
|
||||
a = b;
|
||||
a = b; // #break
|
||||
}
|
||||
|
||||
fn function_call(x: u64, y: u64, z: f64) {
|
||||
std::io::stdio::print("Hi!")
|
||||
std::io::stdio::print("Hi!") // #break
|
||||
}
|
||||
|
||||
fn identifier(x: u64, y: u64, z: f64) -> u64 {
|
||||
x
|
||||
x // #break
|
||||
}
|
||||
|
||||
fn return_expr(x: u64, y: u64, z: f64) -> u64 {
|
||||
return x;
|
||||
return x; // #break
|
||||
}
|
||||
|
||||
fn arithmetic_expr(x: u64, y: u64, z: f64) -> u64 {
|
||||
x + y
|
||||
x + y // #break
|
||||
}
|
||||
|
||||
fn if_expr(x: u64, y: u64, z: f64) -> u64 {
|
||||
if x + y < 1000 {
|
||||
if x + y < 1000 { // #break
|
||||
x
|
||||
} else {
|
||||
y
|
||||
|
|
@ -187,14 +291,14 @@ fn if_expr(x: u64, y: u64, z: f64) -> u64 {
|
|||
}
|
||||
|
||||
fn while_expr(mut x: u64, y: u64, z: u64) -> u64 {
|
||||
while x + y < 1000 {
|
||||
while x + y > 1000 { // #break
|
||||
x += z
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
fn loop_expr(mut x: u64, y: u64, z: u64) -> u64 {
|
||||
loop {
|
||||
loop { // #break
|
||||
x += z;
|
||||
|
||||
if x + y > 1000 {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -28,21 +31,38 @@
|
|||
// gdb-command:print b
|
||||
// gdb-check:$4 = 3000
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = 111102
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$2 = 2000
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$3 = 3000
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
|
||||
fun(111102, true);
|
||||
nested(2000, 3000);
|
||||
|
||||
fn nested(a: i32, b: i64) -> (i32, i64) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
(a, b)
|
||||
}
|
||||
}
|
||||
|
||||
fn fun(x: int, y: bool) -> (int, bool) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
|
||||
(x, y)
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -14,9 +14,13 @@
|
|||
// beginning of a function. Functions with the #[no_split_stack] attribute have the same prologue as
|
||||
// regular C functions compiled with GCC or Clang and therefore are better handled by GDB. As a
|
||||
// consequence, and as opposed to regular Rust functions, we can set the breakpoints via the
|
||||
// function name (and don't have to fall back on using line numbers).
|
||||
// function name (and don't have to fall back on using line numbers). For LLDB this shouldn't make
|
||||
// a difference because it can handle both cases.
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak immediate_args
|
||||
// gdb-command:rbreak binding
|
||||
|
|
@ -127,6 +131,119 @@
|
|||
// gdb-check:$32 = 45
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:breakpoint set --name immediate_args
|
||||
// lldb-command:breakpoint set --name non_immediate_args
|
||||
// lldb-command:breakpoint set --name binding
|
||||
// lldb-command:breakpoint set --name assignment
|
||||
// lldb-command:breakpoint set --name function_call
|
||||
// lldb-command:breakpoint set --name identifier
|
||||
// lldb-command:breakpoint set --name return_expr
|
||||
// lldb-command:breakpoint set --name arithmetic_expr
|
||||
// lldb-command:breakpoint set --name if_expr
|
||||
// lldb-command:breakpoint set --name while_expr
|
||||
// lldb-command:breakpoint set --name loop_expr
|
||||
// lldb-command:run
|
||||
|
||||
// IMMEDIATE ARGS
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$2 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
// NON IMMEDIATE ARGS
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$3 = BigStruct { a: 3, b: 4, c: 5, d: 6, e: 7, f: 8, g: 9, h: 10 }
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$4 = BigStruct { a: 11, b: 12, c: 13, d: 14, e: 15, f: 16, g: 17, h: 18 }
|
||||
// lldb-command:continue
|
||||
|
||||
// BINDING
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$5 = 19
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$6 = 20
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$7 = 21.5
|
||||
// lldb-command:continue
|
||||
|
||||
// ASSIGNMENT
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$8 = 22
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$9 = 23
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$10 = 24.5
|
||||
// lldb-command:continue
|
||||
|
||||
// FUNCTION CALL
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$11 = 25
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$12 = 26
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$13 = 27.5
|
||||
// lldb-command:continue
|
||||
|
||||
// EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$14 = 28
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$15 = 29
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$16 = 30.5
|
||||
// lldb-command:continue
|
||||
|
||||
// RETURN EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$17 = 31
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$18 = 32
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$19 = 33.5
|
||||
// lldb-command:continue
|
||||
|
||||
// ARITHMETIC EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$20 = 34
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$21 = 35
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$22 = 36.5
|
||||
// lldb-command:continue
|
||||
|
||||
// IF EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$23 = 37
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$24 = 38
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$25 = 39.5
|
||||
// lldb-command:continue
|
||||
|
||||
// WHILE EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$26 = 40
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$27 = 41
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$28 = 42
|
||||
// lldb-command:continue
|
||||
|
||||
// LOOP EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$29 = 43
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$30 = 44
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$31 = 45
|
||||
// lldb-command:continue
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
#[no_split_stack]
|
||||
|
|
|
|||
232
src/test/debuginfo/function-prologue-stepping-regular.rs
Normal file
232
src/test/debuginfo/function-prologue-stepping-regular.rs
Normal file
|
|
@ -0,0 +1,232 @@
|
|||
// Copyright 2013-2014 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.
|
||||
|
||||
// This test case checks if function arguments already have the correct value when breaking at the
|
||||
// beginning of a function.
|
||||
|
||||
// ignore-gdb
|
||||
// compile-flags:-g
|
||||
|
||||
// lldb-command:breakpoint set --name immediate_args
|
||||
// lldb-command:breakpoint set --name non_immediate_args
|
||||
// lldb-command:breakpoint set --name binding
|
||||
// lldb-command:breakpoint set --name assignment
|
||||
// lldb-command:breakpoint set --name function_call
|
||||
// lldb-command:breakpoint set --name identifier
|
||||
// lldb-command:breakpoint set --name return_expr
|
||||
// lldb-command:breakpoint set --name arithmetic_expr
|
||||
// lldb-command:breakpoint set --name if_expr
|
||||
// lldb-command:breakpoint set --name while_expr
|
||||
// lldb-command:breakpoint set --name loop_expr
|
||||
// lldb-command:run
|
||||
|
||||
// IMMEDIATE ARGS
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$2 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
// NON IMMEDIATE ARGS
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$3 = BigStruct { a: 3, b: 4, c: 5, d: 6, e: 7, f: 8, g: 9, h: 10 }
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$4 = BigStruct { a: 11, b: 12, c: 13, d: 14, e: 15, f: 16, g: 17, h: 18 }
|
||||
// lldb-command:continue
|
||||
|
||||
// BINDING
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$5 = 19
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$6 = 20
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$7 = 21.5
|
||||
// lldb-command:continue
|
||||
|
||||
// ASSIGNMENT
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$8 = 22
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$9 = 23
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$10 = 24.5
|
||||
// lldb-command:continue
|
||||
|
||||
// FUNCTION CALL
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$11 = 25
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$12 = 26
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$13 = 27.5
|
||||
// lldb-command:continue
|
||||
|
||||
// EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$14 = 28
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$15 = 29
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$16 = 30.5
|
||||
// lldb-command:continue
|
||||
|
||||
// RETURN EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$17 = 31
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$18 = 32
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$19 = 33.5
|
||||
// lldb-command:continue
|
||||
|
||||
// ARITHMETIC EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$20 = 34
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$21 = 35
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$22 = 36.5
|
||||
// lldb-command:continue
|
||||
|
||||
// IF EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$23 = 37
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$24 = 38
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$25 = 39.5
|
||||
// lldb-command:continue
|
||||
|
||||
// WHILE EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$26 = 40
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$27 = 41
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$28 = 42
|
||||
// lldb-command:continue
|
||||
|
||||
// LOOP EXPR
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$29 = 43
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$30 = 44
|
||||
// lldb-command:print z
|
||||
// lldb-check:[...]$31 = 45
|
||||
// lldb-command:continue
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
fn immediate_args(a: int, b: bool, c: f64) {
|
||||
()
|
||||
}
|
||||
|
||||
struct BigStruct {
|
||||
a: u64,
|
||||
b: u64,
|
||||
c: u64,
|
||||
d: u64,
|
||||
e: u64,
|
||||
f: u64,
|
||||
g: u64,
|
||||
h: u64
|
||||
}
|
||||
|
||||
fn non_immediate_args(a: BigStruct, b: BigStruct) {
|
||||
()
|
||||
}
|
||||
|
||||
fn binding(a: i64, b: u64, c: f64) {
|
||||
let x = 0i;
|
||||
}
|
||||
|
||||
fn assignment(mut a: u64, b: u64, c: f64) {
|
||||
a = b;
|
||||
}
|
||||
|
||||
fn function_call(x: u64, y: u64, z: f64) {
|
||||
std::io::stdio::print("Hi!")
|
||||
}
|
||||
|
||||
fn identifier(x: u64, y: u64, z: f64) -> u64 {
|
||||
x
|
||||
}
|
||||
|
||||
fn return_expr(x: u64, y: u64, z: f64) -> u64 {
|
||||
return x;
|
||||
}
|
||||
|
||||
fn arithmetic_expr(x: u64, y: u64, z: f64) -> u64 {
|
||||
x + y
|
||||
}
|
||||
|
||||
fn if_expr(x: u64, y: u64, z: f64) -> u64 {
|
||||
if x + y < 1000 {
|
||||
x
|
||||
} else {
|
||||
y
|
||||
}
|
||||
}
|
||||
|
||||
fn while_expr(mut x: u64, y: u64, z: u64) -> u64 {
|
||||
while x + y < 1000 {
|
||||
x += z
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
fn loop_expr(mut x: u64, y: u64, z: u64) -> u64 {
|
||||
loop {
|
||||
x += z;
|
||||
|
||||
if x + y > 1000 {
|
||||
return x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
immediate_args(1, true, 2.5);
|
||||
|
||||
non_immediate_args(
|
||||
BigStruct {
|
||||
a: 3,
|
||||
b: 4,
|
||||
c: 5,
|
||||
d: 6,
|
||||
e: 7,
|
||||
f: 8,
|
||||
g: 9,
|
||||
h: 10
|
||||
},
|
||||
BigStruct {
|
||||
a: 11,
|
||||
b: 12,
|
||||
c: 13,
|
||||
d: 14,
|
||||
e: 15,
|
||||
f: 16,
|
||||
g: 17,
|
||||
h: 18
|
||||
}
|
||||
);
|
||||
|
||||
binding(19, 20, 21.5);
|
||||
assignment(22, 23, 24.5);
|
||||
function_call(25, 26, 27.5);
|
||||
identifier(28, 29, 30.5);
|
||||
return_expr(31, 32, 33.5);
|
||||
arithmetic_expr(34, 35, 36.5);
|
||||
if_expr(37, 38, 39.5);
|
||||
while_expr(40, 41, 42);
|
||||
loop_expr(43, 44, 45);
|
||||
}
|
||||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -41,6 +44,36 @@
|
|||
// gdb-check:$9 = {{5, {a = 6, b = 7.5}}, {{a = 6, b = 7.5}, 5}}
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *t0
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print *t1
|
||||
// lldb-check:[...]$1 = 2.5
|
||||
// lldb-command:print ret
|
||||
// lldb-check:[...]$2 = ((1, 2.5), (2.5, 1))
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *t0
|
||||
// lldb-check:[...]$3 = 3.5
|
||||
// lldb-command:print *t1
|
||||
// lldb-check:[...]$4 = 4
|
||||
// lldb-command:print ret
|
||||
// lldb-check:[...]$5 = ((3.5, 4), (4, 3.5))
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print *t0
|
||||
// lldb-check:[...]$6 = 5
|
||||
// lldb-command:print *t1
|
||||
// lldb-check:[...]$7 = Struct { a: 6, b: 7.5 }
|
||||
// lldb-command:print ret
|
||||
// lldb-check:[...]$8 = ((5, Struct { a: 6, b: 7.5 }), (Struct { a: 6, b: 7.5 }, 5))
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
#[deriving(Clone)]
|
||||
struct Struct {
|
||||
a: int,
|
||||
|
|
@ -49,7 +82,7 @@ struct Struct {
|
|||
|
||||
fn dup_tup<T0: Clone, T1: Clone>(t0: &T0, t1: &T1) -> ((T0, T1), (T1, T0)) {
|
||||
let ret = ((t0.clone(), t1.clone()), (t1.clone(), t0.clone()));
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
ret
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -42,12 +45,41 @@
|
|||
// gdb-check:$8 = 2.5
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = -1
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = -1
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$3 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = -2.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$5 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = -2.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$7 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
fn outer<TA: Clone>(a: TA) {
|
||||
inner(a.clone(), 1i);
|
||||
inner(a.clone(), 2.5f64);
|
||||
|
||||
fn inner<TX, TY>(x: TX, y: TY) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -56,4 +88,4 @@ fn main() {
|
|||
outer(-2.5f64);
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -20,8 +23,8 @@
|
|||
// gdb-check:$1 = {x = {8888, -8888}}
|
||||
// gdb-command:print arg1
|
||||
// gdb-check:$2 = -1
|
||||
// gdb-command:print/d arg2
|
||||
// gdb-check:$3 = -2
|
||||
// gdb-command:print arg2
|
||||
// gdb-check:$3 = 2
|
||||
// gdb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
|
|
@ -64,6 +67,57 @@
|
|||
// gdb-check:$15 = -10.5
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Struct<(u32, i32)> { x: (8888, -8888) }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Struct<(u32, i32)> { x: (8888, -8888) }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Struct<f64> { x: 1234.5 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Struct<f64> { x: 1234.5 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Struct<f64> { x: 1234.5 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10.5
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
struct Struct<T> {
|
||||
x: T
|
||||
}
|
||||
|
|
@ -71,24 +125,24 @@ struct Struct<T> {
|
|||
impl<T1> Struct<T1> {
|
||||
|
||||
fn self_by_ref<T2>(&self, arg1: int, arg2: T2) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
|
||||
fn self_by_val<T2>(self, arg1: int, arg2: T2) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
|
||||
fn self_owned<T2>(~self, arg1: int, arg2: T2) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let stack = Struct { x: (8888_u32, -8888_i32) };
|
||||
let _ = stack.self_by_ref(-1, -2_i8);
|
||||
let _ = stack.self_by_ref(-1, 2_u16);
|
||||
let _ = stack.self_by_val(-3, -4_i16);
|
||||
|
||||
let owned = box Struct { x: 1234.5f64 };
|
||||
|
|
|
|||
|
|
@ -8,9 +8,13 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// ignore-tidy-linelength
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -24,6 +28,20 @@
|
|||
// gdb-command:print float_int_float
|
||||
// gdb-check:$4 = {key = 6.5, value = {key = 7, value = 8.5}}
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print int_int
|
||||
// lldb-check:[...]$0 = AGenericStruct<int, int> { key: 0, value: 1 }
|
||||
// lldb-command:print int_float
|
||||
// lldb-check:[...]$1 = AGenericStruct<int, f64> { key: 2, value: 3.5 }
|
||||
// lldb-command:print float_int
|
||||
// lldb-check:[...]$2 = AGenericStruct<f64, int> { key: 4.5, value: 5 }
|
||||
|
||||
// lldb-command:print float_int_float
|
||||
// lldb-check:[...]$3 = AGenericStruct<f64, generic-struct::AGenericStruct<int, f64>> { key: 6.5, value: AGenericStruct<int, f64> { key: 7, value: 8.5 } }
|
||||
|
||||
struct AGenericStruct<TKey, TValue> {
|
||||
key: TKey,
|
||||
value: TValue
|
||||
|
|
@ -39,7 +57,7 @@ fn main() {
|
|||
value: AGenericStruct { key: 7i, value: 8.5f64 },
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print union on
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -30,6 +33,23 @@
|
|||
// gdb-check:$4 = {{-1}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print case1
|
||||
// lldb-check:[...]$0 = Case1(0, 31868, 31868, 31868, 31868)
|
||||
|
||||
// lldb-command:print case2
|
||||
// lldb-check:[...]$1 = Case2(0, 286331153, 286331153)
|
||||
|
||||
// lldb-command:print case3
|
||||
// lldb-check:[...]$2 = Case3(0, 6438275382588823897)
|
||||
|
||||
// lldb-command:print univariant
|
||||
// lldb-check:[...]$3 = TheOnlyCase(-1)
|
||||
|
||||
|
||||
// NOTE: This is a copy of the non-generic test case. The `Txx` type parameters have to be
|
||||
// substituted with something of size `xx` bits and the same alignment as an integer type of the
|
||||
// same size.
|
||||
|
|
@ -73,7 +93,7 @@ fn main() {
|
|||
|
||||
let univariant = TheOnlyCase(-1_i64);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
fn zzz() { () }
|
||||
|
|
|
|||
|
|
@ -15,13 +15,27 @@
|
|||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
// gdb-command:print string1.length
|
||||
// gdb-check:$1 = 49
|
||||
// gdb-check:$1 = 48
|
||||
// gdb-command:print string2.length
|
||||
// gdb-check:$2 = 49
|
||||
// gdb-command:print string3.length
|
||||
// gdb-check:$3 = 49
|
||||
// gdb-check:$3 = 50
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print string1.length
|
||||
// lldb-check:[...]$0 = 48
|
||||
// lldb-command:print string2.length
|
||||
// lldb-check:[...]$1 = 49
|
||||
// lldb-command:print string3.length
|
||||
// lldb-check:[...]$2 = 50
|
||||
|
||||
// lldb-command:continue
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
// This test case makes sure that debug info does not ICE when include_str is
|
||||
|
|
@ -31,7 +45,8 @@ fn main() {
|
|||
let string1 = include_str!("text-to-include-1.txt");
|
||||
let string2 = include_str!("text-to-include-2.txt");
|
||||
let string3 = include_str!("text-to-include-3.txt");
|
||||
zzz();
|
||||
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -53,6 +56,43 @@
|
|||
// gdb-check:$7 = 1000000
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// FIRST ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
// SECOND ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$3 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// THIRD ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = 3
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$5 = -3
|
||||
// lldb-command:continue
|
||||
|
||||
// AFTER LOOP
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = 1000000
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
|
||||
let range = [1i, 2, 3];
|
||||
|
|
@ -60,16 +100,16 @@ fn main() {
|
|||
let x = 1000000i; // wan meeeljen doollaars!
|
||||
|
||||
for &x in range.iter() {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = -1i * x;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -78,47 +81,109 @@
|
|||
// gdb-check:$16 = -1
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// BEFORE if
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = 999
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
// AT BEGINNING of 'then' block
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 999
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$3 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
// AFTER 1st redeclaration of 'x'
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = 1001
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$5 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
// AFTER 2st redeclaration of 'x'
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = 1002
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$7 = 1003
|
||||
// lldb-command:continue
|
||||
|
||||
// AFTER 1st if expression
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$8 = 999
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$9 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
// BEGINNING of else branch
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$10 = 999
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$11 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
// BEGINNING of else branch
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$12 = 1004
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$13 = 1005
|
||||
// lldb-command:continue
|
||||
|
||||
// BEGINNING of else branch
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$14 = 999
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$15 = -1
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
fn main() {
|
||||
|
||||
let x = 999i;
|
||||
let y = -1i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
if x < 1000 {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 1001i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 1002i;
|
||||
let y = 1003i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
} else {
|
||||
unreachable!();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
if x > 1000 {
|
||||
unreachable!();
|
||||
} else {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 1004i;
|
||||
let y = 1005i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -74,6 +77,64 @@
|
|||
// gdb-check:$18 = 232
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$0 = 231
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$1 = 232
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$2 = 233
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$3 = 232
|
||||
// lldb-command:print local_to_arm
|
||||
// lldb-check:[...]$4 = 234
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$5 = 236
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$6 = 232
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$7 = 237
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$8 = 232
|
||||
// lldb-command:print local_to_arm
|
||||
// lldb-check:[...]$9 = 238
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$10 = 239
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$11 = 232
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$12 = 241
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$13 = 232
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$14 = 243
|
||||
// lldb-command:print *local_to_arm
|
||||
// lldb-check:[...]$15 = 244
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print shadowed
|
||||
// lldb-check:[...]$16 = 231
|
||||
// lldb-command:print not_shadowed
|
||||
// lldb-check:[...]$17 = 232
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
struct Struct {
|
||||
x: int,
|
||||
y: int
|
||||
|
|
@ -84,13 +145,13 @@ fn main() {
|
|||
let shadowed = 231i;
|
||||
let not_shadowed = 232i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
match (233i, 234i) {
|
||||
(shadowed, local_to_arm) => {
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
}
|
||||
|
|
@ -99,7 +160,7 @@ fn main() {
|
|||
// with literal
|
||||
(235, shadowed) => {
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
_ => {}
|
||||
|
|
@ -108,7 +169,7 @@ fn main() {
|
|||
match (Struct { x: 237, y: 238 }) {
|
||||
Struct { x: shadowed, y: local_to_arm } => {
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
}
|
||||
|
|
@ -117,7 +178,7 @@ fn main() {
|
|||
// ignored field
|
||||
Struct { x: shadowed, .. } => {
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
}
|
||||
|
|
@ -126,7 +187,7 @@ fn main() {
|
|||
// with literal
|
||||
Struct { x: shadowed, y: 242 } => {
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
_ => {}
|
||||
|
|
@ -135,12 +196,12 @@ fn main() {
|
|||
match (243i, 244i) {
|
||||
(shadowed, ref local_to_arm) => {
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -44,34 +47,63 @@
|
|||
// gdb-check:$6 = false
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 1000
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$3 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$5 = false
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
|
||||
let x = false;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let stack_closure: |int| = |x| {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 2.5f64;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = true;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
stack_closure(1000);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -82,6 +85,66 @@
|
|||
// gdb-check:$13 = 2
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// FIRST ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = 0
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 101
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$3 = 101
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = -987
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$5 = 101
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
// SECOND ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$7 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$8 = 102
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$9 = 102
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$10 = -987
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$11 = 102
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$12 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
|
||||
let mut x = 0i;
|
||||
|
|
@ -91,35 +154,35 @@ fn main() {
|
|||
break;
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
x += 1;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// Shadow x
|
||||
let x = x + 100;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// open scope within loop's top level scope
|
||||
{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = -987i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
// Check that we get the x before the inner scope again
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -44,34 +47,63 @@
|
|||
// gdb-check:$6 = false
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 1000
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$3 = 2.5
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$5 = false
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
|
||||
let x = false;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let unique_closure: proc(int) = proc(x) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 2.5f64;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = true;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
unique_closure(1000);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -82,40 +85,101 @@
|
|||
// gdb-check:$13 = 2
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// FIRST ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = 0
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 101
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$3 = 101
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = -987
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$5 = 101
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
// SECOND ITERATION
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = 1
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$7 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$8 = 102
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$9 = 102
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$10 = -987
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$11 = 102
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$12 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
fn main() {
|
||||
|
||||
let mut x = 0i;
|
||||
|
||||
while x < 2 {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
x += 1;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// Shadow x
|
||||
let x = x + 100;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// open scope within loop's top level scope
|
||||
{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = -987i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
// Check that we get the x before the inner scope again
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -65,6 +68,56 @@
|
|||
// gdb-check:$15 = 400
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 10
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = 34
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$2 = 890242
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$3 = 34
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$4 = 10
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$5 = 34
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$6 = 102
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$7 = 34
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$8 = 110
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$9 = 34
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$10 = 10
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$11 = 34
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$12 = 10
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$13 = 34
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$14 = 400
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
#![feature(macro_rules)]
|
||||
|
||||
macro_rules! trivial(
|
||||
|
|
@ -78,7 +131,7 @@ macro_rules! no_new_scope(
|
|||
macro_rules! new_scope(
|
||||
() => ({
|
||||
let a = 890242i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
})
|
||||
)
|
||||
|
|
@ -87,12 +140,12 @@ macro_rules! shadow_within_macro(
|
|||
($e1:expr) => ({
|
||||
let a = $e1 + 2;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let a = $e1 + 10;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
})
|
||||
)
|
||||
|
|
@ -108,22 +161,22 @@ fn main() {
|
|||
let a = trivial!(10i);
|
||||
let b = no_new_scope!(33i);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
new_scope!();
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
shadow_within_macro!(100i);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let c = dup_expr!(10i * 20);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -211,6 +214,164 @@
|
|||
// gdb-check:$57 = 10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STRUCT EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$0 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$1 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$2 = 11
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$3 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$4 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$5 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// FUNCTION CALL
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$6 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$7 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$8 = 12
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$9 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$10 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$11 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// TUPLE EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$12 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$13 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$14 = 13
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$15 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$16 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$17 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// VEC EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$18 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$19 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$20 = 14
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$21 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$22 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$23 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// REPEAT VEC EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$24 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$25 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$26 = 15
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$27 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$28 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$29 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// ASSIGNMENT EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$30 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$31 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$32 = 16
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$33 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$34 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$35 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
// ARITHMETIC EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$36 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$37 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$38 = 17
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$39 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$40 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$41 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// INDEX EXPRESSION
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$42 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$43 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$44 = 18
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$45 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print val
|
||||
// lldb-check:[...]$46 = -1
|
||||
// lldb-command:print ten
|
||||
// lldb-check:[...]$47 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![allow(dead_assignment)]
|
||||
|
||||
|
|
@ -233,13 +394,13 @@ fn main() {
|
|||
// surrounded by struct expression
|
||||
let point = Point {
|
||||
x: {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 1;
|
||||
unsafe {MUT_INT = 1;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
|
|
@ -247,129 +408,129 @@ fn main() {
|
|||
y: 10
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// surrounded by function call
|
||||
let _ = a_function({
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 2;
|
||||
unsafe {MUT_INT = 2;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
});
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
|
||||
// surrounded by tup
|
||||
let _ = ({
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 3;
|
||||
unsafe {MUT_INT = 3;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
}, 0i);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// surrounded by vec
|
||||
let _ = [{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 4;
|
||||
unsafe {MUT_INT = 4;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
}, 0, 0];
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// surrounded by repeat vec
|
||||
let _ = [{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 5;
|
||||
unsafe {MUT_INT = 5;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
}, ..10];
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// assignment expression
|
||||
let mut var = 0;
|
||||
var = {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 6;
|
||||
unsafe {MUT_INT = 6;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// arithmetic expression
|
||||
var = 10 + -{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 7;
|
||||
unsafe {MUT_INT = 7;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val
|
||||
} * 5;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
// index expression
|
||||
let a_vector = [10i, ..20];
|
||||
let _ = a_vector[{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let val = ten + 8;
|
||||
unsafe {MUT_INT = 8;};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
val as uint
|
||||
}];
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// ignore-lldb
|
||||
|
||||
// compile-flags:--debuginfo=1
|
||||
|
||||
// Make sure functions have proper names
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -24,6 +27,20 @@
|
|||
// gdb-command:print univariant->val
|
||||
// gdb-check:$3 = {{-9747455}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print the_a->val
|
||||
// lldb-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 }
|
||||
|
||||
// lldb-command:print the_b->val
|
||||
// lldb-check:[...]$1 = TheB(0, 286331153, 286331153)
|
||||
|
||||
// lldb-command:print univariant->val
|
||||
// lldb-check:[...]$2 = TheOnlyCase(-9747455)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![feature(struct_variant, managed_boxes)]
|
||||
|
||||
|
|
@ -62,7 +79,7 @@ fn main() {
|
|||
|
||||
let univariant = box(GC) TheOnlyCase(-9747455);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
#![feature(managed_boxes)]
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -29,6 +32,24 @@
|
|||
// gdb-command:print unique.ptr[3]->val
|
||||
// gdb-check:$4 = 13
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print unique.ptr[0]->val
|
||||
// lldb-check:[...]$0 = 10
|
||||
|
||||
// lldb-command:print unique.ptr[1]->val
|
||||
// lldb-check:[...]$1 = 11
|
||||
|
||||
// lldb-command:print unique.ptr[2]->val
|
||||
// lldb-check:[...]$2 = 12
|
||||
|
||||
// lldb-command:print unique.ptr[3]->val
|
||||
// lldb-check:[...]$3 = 13
|
||||
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
use std::gc::{Gc, GC};
|
||||
|
|
@ -37,7 +58,7 @@ fn main() {
|
|||
|
||||
let unique: Vec<Gc<i64>> = vec!(box(GC) 10, box(GC) 11, box(GC) 12, box(GC) 13);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
#![feature(managed_boxes)]
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -27,6 +30,19 @@
|
|||
// gdb-command:print managed_within_unique->y->val
|
||||
// gdb-check:$3 = -4
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *ordinary_unique
|
||||
// lldb-check:[...]$0 = (-1, -2)
|
||||
|
||||
// lldb-command:print managed_within_unique->x
|
||||
// lldb-check:[...]$1 = -3
|
||||
|
||||
// lldb-command:print managed_within_unique->y->val
|
||||
// lldb-check:[...]$2 = -4
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
use std::gc::{GC, Gc};
|
||||
|
|
@ -41,7 +57,7 @@ fn main() {
|
|||
|
||||
let managed_within_unique = box ContainsManaged { x: -3, y: box(GC) -4i };
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -64,6 +67,56 @@
|
|||
// gdb-check:$15 = -10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Variant2(117901063)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Variant2(117901063)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Variant1 { x: 1799, y: 1799 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Variant1 { x: 1799, y: 1799 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Variant1 { x: 1799, y: 1799 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10
|
||||
// lldb-command:continue
|
||||
|
||||
#![feature(struct_variant)]
|
||||
|
||||
enum Enum {
|
||||
|
|
@ -74,17 +127,17 @@ enum Enum {
|
|||
impl Enum {
|
||||
|
||||
fn self_by_ref(&self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_by_val(self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_owned(~self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -64,6 +67,57 @@
|
|||
// gdb-check:$15 = -10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Struct<(u32, i32)> { x: (8888, -8888) }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Struct<(u32, i32)> { x: (8888, -8888) }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Struct<f64> { x: 1234.5 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Struct<f64> { x: 1234.5 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Struct<f64> { x: 1234.5 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
struct Struct<T> {
|
||||
x: T
|
||||
}
|
||||
|
|
@ -71,17 +125,17 @@ struct Struct<T> {
|
|||
impl<T> Struct<T> {
|
||||
|
||||
fn self_by_ref(&self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_by_val(self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_owned(~self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -64,6 +67,56 @@
|
|||
// gdb-check:$15 = -10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Struct { x: 100 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Struct { x: 100 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10
|
||||
// lldb-command:continue
|
||||
|
||||
struct Struct {
|
||||
x: int
|
||||
}
|
||||
|
|
@ -71,17 +124,17 @@ struct Struct {
|
|||
impl Struct {
|
||||
|
||||
fn self_by_ref(&self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self.x + arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_by_val(self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self.x + arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_owned(~self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self.x + arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -64,6 +67,56 @@
|
|||
// gdb-check:$15 = -10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Struct { x: 100 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Struct { x: 100 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10
|
||||
// lldb-command:continue
|
||||
|
||||
struct Struct {
|
||||
x: int
|
||||
}
|
||||
|
|
@ -77,17 +130,17 @@ trait Trait {
|
|||
impl Trait for Struct {
|
||||
|
||||
fn self_by_ref(&self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self.x + arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_by_val(self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self.x + arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_owned(~self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
self.x + arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -64,22 +67,72 @@
|
|||
// gdb-check:$15 = -10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = TupleStruct(100, -100.5)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = TupleStruct(100, -100.5)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = TupleStruct(200, -200.5)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = TupleStruct(200, -200.5)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = TupleStruct(200, -200.5)
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10
|
||||
// lldb-command:continue
|
||||
|
||||
struct TupleStruct(int, f64);
|
||||
|
||||
impl TupleStruct {
|
||||
|
||||
fn self_by_ref(&self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_by_val(self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_owned(~self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -28,22 +31,38 @@
|
|||
// gdb-command:print abc
|
||||
// gdb-check:$3 = 30303
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print abc
|
||||
// lldb-check:[...]$0 = 10101
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print abc
|
||||
// lldb-check:[...]$1 = 20202
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print abc
|
||||
// lldb-check:[...]$2 = 30303
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
fn function_one() {
|
||||
let abc = 10101i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn function_two() {
|
||||
let abc = 20202i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
|
||||
fn function_three() {
|
||||
let abc = 30303i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -28,22 +31,38 @@
|
|||
// gdb-command:print c
|
||||
// gdb-check:$3 = 30303
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = 10101
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print b
|
||||
// lldb-check:[...]$1 = 20202
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print c
|
||||
// lldb-check:[...]$2 = 30303
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
fn function_one() {
|
||||
let a = 10101i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn function_two() {
|
||||
let b = 20202i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
|
||||
fn function_three() {
|
||||
let c = 30303i;
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -56,38 +59,79 @@
|
|||
// gdb-check:$12 = 20
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 10
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$3 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = 10.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$5 = 20
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = true
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$7 = 2220
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$8 = 203203.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$9 = 2220
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$10 = 10.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$11 = 20
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
let x = false;
|
||||
let y = true;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10.5f64;
|
||||
let y = 20i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
{
|
||||
let x = true;
|
||||
let y = 2220i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 203203.5f64;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// LLDB can't handle zero-sized values
|
||||
// ignore-lldb
|
||||
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -25,17 +28,41 @@
|
|||
// gdb-command:print full
|
||||
// gdb-check:$3 = {RUST$ENCODED$ENUM$1$Empty = {454545, 0x87654321, 9988}}
|
||||
|
||||
// gdb-command:print empty->discr
|
||||
// gdb-command:print empty_gdb->discr
|
||||
// gdb-check:$4 = (int *) 0x0
|
||||
|
||||
// gdb-command:print droid
|
||||
// gdb-check:$5 = {RUST$ENCODED$ENUM$2$Void = {id = 675675, range = 10000001, internals = 0x43218765}}
|
||||
|
||||
// gdb-command:print void_droid->internals
|
||||
// gdb-command:print void_droid_gdb->internals
|
||||
// gdb-check:$6 = (int *) 0x0
|
||||
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print some
|
||||
// lldb-check:[...]$0 = Some(&0x12345678)
|
||||
|
||||
// lldb-command:print none
|
||||
// lldb-check:[...]$1 = None
|
||||
|
||||
// lldb-command:print full
|
||||
// lldb-check:[...]$2 = Full(454545, &0x87654321, 9988)
|
||||
|
||||
// lldb-command:print empty
|
||||
// lldb-check:[...]$3 = Empty
|
||||
|
||||
// lldb-command:print droid
|
||||
// lldb-check:[...]$4 = Droid { id: 675675, range: 10000001, internals: &0x43218765 }
|
||||
|
||||
// lldb-command:print void_droid
|
||||
// lldb-check:[...]$5 = Void
|
||||
|
||||
|
||||
#![feature(struct_variant)]
|
||||
|
||||
// If a struct has exactly two variants, one of them is empty, and the other one
|
||||
|
|
@ -77,8 +104,8 @@ fn main() {
|
|||
|
||||
let full = Full(454545, unsafe { std::mem::transmute(0x87654321u) }, 9988);
|
||||
|
||||
let int_val = 0i;
|
||||
let empty: &MoreFieldsRepr = unsafe { std::mem::transmute(&Empty) };
|
||||
let empty = Empty;
|
||||
let empty_gdb: &MoreFieldsRepr = unsafe { std::mem::transmute(&Empty) };
|
||||
|
||||
let droid = Droid {
|
||||
id: 675675,
|
||||
|
|
@ -86,9 +113,10 @@ fn main() {
|
|||
internals: unsafe { std::mem::transmute(0x43218765u) }
|
||||
};
|
||||
|
||||
let void_droid: &NamedFieldsRepr = unsafe { std::mem::transmute(&Void) };
|
||||
let void_droid = Void;
|
||||
let void_droid_gdb: &NamedFieldsRepr = unsafe { std::mem::transmute(&Void) };
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -42,6 +45,36 @@
|
|||
// gdb-command:print deeplyNested
|
||||
// gdb-check:$8 = {a = {a = 1, b = {x = 2, y = 3, z = 4}, c = 5, d = {x = 6, y = 7, z = 8}}, b = {a = 9, b = {x = 10, y = 11, z = 12}, c = {x = 13, y = 14, z = 15}, d = 16}, c = {a = 17, b = {x = 18, y = 19, z = 20}, c = 21, d = {x = 22, y = 23, z = 24}}, d = {a = 25, b = {x = 26, y = 27, z = 28}, c = 29, d = {x = 30, y = 31, z = 32}}, e = {a = 33, b = {x = 34, y = 35, z = 36}, c = {x = 37, y = 38, z = 39}, d = 40}, f = {a = 41, b = {x = 42, y = 43, z = 44}, c = 45, d = {x = 46, y = 47, z = 48}}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print packed
|
||||
// lldb-check:[...]$0 = Packed { x: 123, y: 234, z: 345 }
|
||||
|
||||
// lldb-command:print packedInPacked
|
||||
// lldb-check:[...]$1 = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } }
|
||||
|
||||
// lldb-command:print packedInUnpacked
|
||||
// lldb-check:[...]$2 = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } }
|
||||
|
||||
// lldb-command:print unpackedInPacked
|
||||
// lldb-check:[...]$3 = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654 }, c: Unpacked { x: 543, y: 432, z: 321 }, d: 210 }
|
||||
|
||||
// lldb-command:print packedInPackedWithDrop
|
||||
// lldb-check:[...]$4 = PackedInPackedWithDrop { a: 11, b: Packed { x: 22, y: 33, z: 44 }, c: 55, d: Packed { x: 66, y: 77, z: 88 } }
|
||||
|
||||
// lldb-command:print packedInUnpackedWithDrop
|
||||
// lldb-check:[...]$5 = PackedInUnpackedWithDrop { a: -11, b: Packed { x: -22, y: -33, z: -44 }, c: -55, d: Packed { x: -66, y: -77, z: -88 } }
|
||||
|
||||
// lldb-command:print unpackedInPackedWithDrop
|
||||
// lldb-check:[...]$6 = UnpackedInPackedWithDrop { a: 98, b: Unpacked { x: 87, y: 76, z: 65 }, c: Unpacked { x: 54, y: 43, z: 32 }, d: 21 }
|
||||
|
||||
// lldb-command:print deeplyNested
|
||||
// lldb-check:[...]$7 = DeeplyNested { a: PackedInPacked { a: 1, b: Packed { x: 2, y: 3, z: 4 }, c: 5, d: Packed { x: 6, y: 7, z: 8 } }, b: UnpackedInPackedWithDrop { a: 9, b: Unpacked { x: 10, y: 11, z: 12 }, c: Unpacked { x: 13, y: 14, z: 15 }, d: 16 }, c: PackedInUnpacked { a: 17, b: Packed { x: 18, y: 19, z: 20 }, c: 21, d: Packed { x: 22, y: 23, z: 24 } }, d: PackedInUnpackedWithDrop { a: 25, b: Packed { x: 26, y: 27, z: 28 }, c: 29, d: Packed { x: 30, y: 31, z: 32 } }, e: UnpackedInPacked { a: 33, b: Unpacked { x: 34, y: 35, z: 36 }, c: Unpacked { x: 37, y: 38, z: 39 }, d: 40 }, f: PackedInPackedWithDrop { a: 41, b: Packed { x: 42, y: 43, z: 44 }, c: 45, d: Packed { x: 46, y: 47, z: 48 } } }
|
||||
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
#[packed]
|
||||
|
|
@ -216,7 +249,7 @@ fn main() {
|
|||
}
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -35,6 +38,29 @@
|
|||
// gdb-command:print sizeof(packedInPacked)
|
||||
// gdb-check:$6 = 40
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print packed
|
||||
// lldb-check:[...]$0 = Packed { x: 123, y: 234, z: 345 }
|
||||
|
||||
// lldb-command:print packedInPacked
|
||||
// lldb-check:[...]$1 = PackedInPacked { a: 1111, b: Packed { x: 2222, y: 3333, z: 4444 }, c: 5555, d: Packed { x: 6666, y: 7777, z: 8888 } }
|
||||
|
||||
// lldb-command:print packedInUnpacked
|
||||
// lldb-check:[...]$2 = PackedInUnpacked { a: -1111, b: Packed { x: -2222, y: -3333, z: -4444 }, c: -5555, d: Packed { x: -6666, y: -7777, z: -8888 } }
|
||||
|
||||
// lldb-command:print unpackedInPacked
|
||||
// lldb-check:[...]$3 = UnpackedInPacked { a: 987, b: Unpacked { x: 876, y: 765, z: 654, w: 543 }, c: Unpacked { x: 432, y: 321, z: 210, w: 109 }, d: -98 }
|
||||
|
||||
// lldb-command:print sizeof(packed)
|
||||
// lldb-check:[...]$4 = 14
|
||||
|
||||
// lldb-command:print sizeof(packedInPacked)
|
||||
// lldb-check:[...]$5 = 40
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
#[packed]
|
||||
|
|
@ -101,7 +127,7 @@ fn main() {
|
|||
d: -98
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// ignore-lldb
|
||||
|
||||
// compile-flags:-g
|
||||
// gdb-command:run
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
// ignore-tidy-linelength
|
||||
// ignore-android: FIXME(#10381)
|
||||
// ignore-lldb
|
||||
|
||||
#![feature(managed_boxes)]
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -64,23 +67,74 @@
|
|||
// gdb-check:$15 = -10
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Struct { x: 100 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = -2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Struct { x: 100 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Struct { x: 200 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
struct Struct {
|
||||
x: int
|
||||
}
|
||||
|
||||
trait Trait {
|
||||
fn self_by_ref(&self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_by_val(self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
|
||||
fn self_owned(~self, arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -20,8 +23,8 @@
|
|||
// gdb-check:$1 = {x = 987}
|
||||
// gdb-command:print arg1
|
||||
// gdb-check:$2 = -1
|
||||
// gdb-command:print/d arg2
|
||||
// gdb-check:$3 = -2
|
||||
// gdb-command:print arg2
|
||||
// gdb-check:$3 = 2
|
||||
// gdb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
|
|
@ -64,6 +67,57 @@
|
|||
// gdb-check:$15 = -10.5
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STACK BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$0 = Struct { x: 987 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$1 = -1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$2 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
// STACK BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$3 = Struct { x: 987 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$4 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$5 = -4
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY REF
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$6 = Struct { x: 879 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$7 = -5
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$8 = -6
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED BY VAL
|
||||
// lldb-command:print self
|
||||
// lldb-check:[...]$9 = Struct { x: 879 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$10 = -7
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$11 = -8
|
||||
// lldb-command:continue
|
||||
|
||||
// OWNED MOVED
|
||||
// lldb-command:print *self
|
||||
// lldb-check:[...]$12 = Struct { x: 879 }
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$13 = -9
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$14 = -10.5
|
||||
// lldb-command:continue
|
||||
|
||||
|
||||
struct Struct {
|
||||
x: int
|
||||
}
|
||||
|
|
@ -71,17 +125,17 @@ struct Struct {
|
|||
trait Trait {
|
||||
|
||||
fn self_by_ref<T>(&self, arg1: int, arg2: T) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
|
||||
fn self_by_val<T>(self, arg1: int, arg2: T) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
|
||||
fn self_owned<T>(~self, arg1: int, arg2: T) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
}
|
||||
|
|
@ -90,7 +144,7 @@ impl Trait for Struct {}
|
|||
|
||||
fn main() {
|
||||
let stack = Struct { x: 987 };
|
||||
let _ = stack.self_by_ref(-1, -2_i8);
|
||||
let _ = stack.self_by_ref(-1, 2_u16);
|
||||
let _ = stack.self_by_val(-3, -4_i16);
|
||||
|
||||
let owned = box Struct { x: 879 };
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -35,19 +38,42 @@
|
|||
// gdb-check:$6 = 20
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 10
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$3 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = 10.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$5 = 20
|
||||
// lldb-command:continue
|
||||
|
||||
fn a_function(x: bool, y: bool) {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10.5f64;
|
||||
let y = 20i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -35,22 +38,45 @@
|
|||
// gdb-check:$6 = 20
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$1 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 10
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$3 = true
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = 10.5
|
||||
// lldb-command:print y
|
||||
// lldb-check:[...]$5 = 20
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
let x = false;
|
||||
let y = true;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10.5f64;
|
||||
let y = 20i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// Need a fix for LLDB first...
|
||||
// ignore-lldb
|
||||
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -50,36 +53,68 @@
|
|||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$0 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$1 = false
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$2 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$3 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$4 = 10.5
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$5 = 10
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print x
|
||||
// lldb-check:[...]$6 = false
|
||||
// lldb-command:continue
|
||||
|
||||
fn main() {
|
||||
let x = false;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10i;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
{
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
|
||||
let x = 10.5f64;
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
sentinel();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
|
||||
|
|
@ -76,6 +79,28 @@
|
|||
// gdb-check:$19 = {a = 10019, b = -10020, x = -10016, y = -10017.5, z = 10018}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print no_padding16
|
||||
// lldb-check:[...]$0 = NoPadding16 { x: 10000, y: -10001 }
|
||||
|
||||
// lldb-command:print no_padding32
|
||||
// lldb-check:[...]$1 = NoPadding32 { x: -10002, y: -10003.5, z: 10004 }
|
||||
|
||||
// lldb-command:print no_padding64
|
||||
// lldb-check:[...]$2 = NoPadding64 { x: -10005.5, y: 10006, z: 10007 }
|
||||
|
||||
// lldb-command:print no_padding163264
|
||||
// lldb-check:[...]$3 = NoPadding163264 { a: -10008, b: 10009, c: 10010, d: 10011 }
|
||||
|
||||
// lldb-command:print internal_padding
|
||||
// lldb-check:[...]$4 = InternalPadding { x: 10012, y: -10013 }
|
||||
|
||||
// lldb-command:print padding_at_end
|
||||
// lldb-check:[...]$5 = PaddingAtEnd { x: -10014, y: 10015 }
|
||||
|
||||
#![feature(struct_inherit)];
|
||||
#![allow(unused_variable)];
|
||||
#![allow(dead_code)];
|
||||
|
|
@ -188,7 +213,7 @@ fn main() {
|
|||
PADDING_AT_END.y = 28;
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
|
||||
|
|
@ -69,6 +72,28 @@
|
|||
// gdb-command:print 'simple-tuple::PADDING_AT_END'
|
||||
// gdb-check:$21 = {116, 117}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print/d noPadding8
|
||||
// lldb-check:[...]$0 = (-100, 100)
|
||||
// lldb-command:print noPadding16
|
||||
// lldb-check:[...]$1 = (0, 1, 2)
|
||||
// lldb-command:print noPadding32
|
||||
// lldb-check:[...]$2 = (3, 4.5, 5)
|
||||
// lldb-command:print noPadding64
|
||||
// lldb-check:[...]$3 = (6, 7.5, 8)
|
||||
|
||||
// lldb-command:print internalPadding1
|
||||
// lldb-check:[...]$4 = (9, 10)
|
||||
// lldb-command:print internalPadding2
|
||||
// lldb-check:[...]$5 = (11, 12, 13, 14)
|
||||
|
||||
// lldb-command:print paddingAtEnd
|
||||
// lldb-check:[...]$6 = (15, 16)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![allow(dead_code)]
|
||||
|
||||
|
|
@ -107,7 +132,7 @@ fn main() {
|
|||
PADDING_AT_END = (116, 117);
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -32,6 +35,27 @@
|
|||
// gdb-check:$5 = 5
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// STRUCT
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$1 = 2
|
||||
// lldb-command:continue
|
||||
|
||||
// ENUM
|
||||
// lldb-command:print arg1
|
||||
// lldb-check:[...]$2 = -3
|
||||
// lldb-command:print arg2
|
||||
// lldb-check:[...]$3 = 4.5
|
||||
// lldb-command:print arg3
|
||||
// lldb-check:[...]$4 = 5
|
||||
// lldb-command:continue
|
||||
|
||||
#![feature(struct_variant)]
|
||||
|
||||
struct Struct {
|
||||
|
|
@ -41,7 +65,7 @@ struct Struct {
|
|||
impl Struct {
|
||||
|
||||
fn static_method(arg1: int, arg2: int) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1 + arg2
|
||||
}
|
||||
}
|
||||
|
|
@ -55,7 +79,7 @@ enum Enum {
|
|||
impl Enum {
|
||||
|
||||
fn static_method(arg1: int, arg2: f64, arg3: uint) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print union on
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -26,6 +29,19 @@
|
|||
// gdb-command:print univariant
|
||||
// gdb-check:$3 = {{{x = 123, y = 456, z = 789}}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print case1
|
||||
// lldb-check:[...]$0 = Case1(0, Struct { x: 2088533116, y: 2088533116, z: 31868 })
|
||||
// lldb-command:print case2
|
||||
// lldb-check:[...]$1 = Case2(0, 1229782938247303441, 4369)
|
||||
|
||||
// lldb-command:print univariant
|
||||
// lldb-check:[...]$2 = TheOnlyCase(Struct { x: 123, y: 456, z: 789 })
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct Struct {
|
||||
|
|
@ -66,7 +82,7 @@ fn main() {
|
|||
|
||||
let univariant = TheOnlyCase(Struct { x: 123, y: 456, z: 789 });
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -8,9 +8,13 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// ignore-tidy-linelength
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -25,6 +29,35 @@
|
|||
// gdb-command:print padding_at_end_parent
|
||||
// gdb-check:$3 = {x = {x = 10, y = 11}, y = {x = 12, y = 13}, z = {x = 14, y = 15}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print three_simple_structs
|
||||
// lldb-check:[...]$0 = ThreeSimpleStructs { x: Simple { x: 1 }, y: Simple { x: 2 }, z: Simple { x: 3 } }
|
||||
|
||||
// lldb-command:print internal_padding_parent
|
||||
// lldb-check:[...]$1 = InternalPaddingParent { x: InternalPadding { x: 4, y: 5 }, y: InternalPadding { x: 6, y: 7 }, z: InternalPadding { x: 8, y: 9 } }
|
||||
|
||||
// lldb-command:print padding_at_end_parent
|
||||
// lldb-check:[...]$2 = PaddingAtEndParent { x: PaddingAtEnd { x: 10, y: 11 }, y: PaddingAtEnd { x: 12, y: 13 }, z: PaddingAtEnd { x: 14, y: 15 } }
|
||||
|
||||
// lldb-command:print mixed
|
||||
// lldb-check:[...]$3 = Mixed { x: PaddingAtEnd { x: 16, y: 17 }, y: InternalPadding { x: 18, y: 19 }, z: Simple { x: 20 }, w: 21 }
|
||||
|
||||
// lldb-command:print bag
|
||||
// lldb-check:[...]$4 = Bag { x: Simple { x: 22 } }
|
||||
|
||||
// lldb-command:print bag_in_bag
|
||||
// lldb-check:[...]$5 = BagInBag { x: Bag { x: Simple { x: 23 } } }
|
||||
|
||||
// lldb-command:print tjo
|
||||
// lldb-check:[...]$6 = ThatsJustOverkill { x: BagInBag { x: Bag { x: Simple { x: 24 } } } }
|
||||
|
||||
// lldb-command:print tree
|
||||
// lldb-check:[...]$7 = Tree { x: Simple { x: 25 }, y: InternalPaddingParent { x: InternalPadding { x: 26, y: 27 }, y: InternalPadding { x: 28, y: 29 }, z: InternalPadding { x: 30, y: 31 } }, z: BagInBag { x: Bag { x: Simple { x: 32 } } } }
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct Simple {
|
||||
|
|
@ -140,7 +173,7 @@ fn main() {
|
|||
}
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print union on
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -29,6 +32,23 @@
|
|||
// gdb-command:print univariant
|
||||
// gdb-check:$4 = {{a = -1}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print case1
|
||||
// lldb-check:[...]$0 = Case1 { a: 0, b: 31868, c: 31868, d: 31868, e: 31868 }
|
||||
|
||||
// lldb-command:print case2
|
||||
// lldb-check:[...]$1 = Case2 { a: 0, b: 286331153, c: 286331153 }
|
||||
|
||||
// lldb-command:print case3
|
||||
// lldb-check:[...]$2 = Case3 { a: 0, b: 6438275382588823897 }
|
||||
|
||||
// lldb-command:print univariant
|
||||
// lldb-check:[...]$3 = TheOnlyCase { a: -1 }
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![feature(struct_variant)]
|
||||
|
||||
|
|
@ -71,7 +91,7 @@ fn main() {
|
|||
|
||||
let univariant = TheOnlyCase { a: -1 };
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -26,6 +29,22 @@
|
|||
// gdb-command:print nested
|
||||
// gdb-check:$4 = {a = {a = {x = 7890, y = 9870}}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
// lldb-command:print simple
|
||||
// lldb-check:[...]$0 = WithDestructor { x: 10, y: 20 }
|
||||
|
||||
// lldb-command:print noDestructor
|
||||
// lldb-check:[...]$1 = NoDestructorGuarded { a: NoDestructor { x: 10, y: 20 }, guard: -1 }
|
||||
|
||||
// lldb-command:print withDestructor
|
||||
// lldb-check:[...]$2 = WithDestructorGuarded { a: WithDestructor { x: 10, y: 20 }, guard: -1 }
|
||||
|
||||
// lldb-command:print nested
|
||||
// lldb-check:[...]$3 = NestedOuter { a: NestedInner { a: WithDestructor { x: 7890, y: 9870 } } }
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct NoDestructor {
|
||||
|
|
@ -121,7 +140,7 @@ fn main() {
|
|||
// <-------NestedOuter-------->
|
||||
let nested = NestedOuter { a: NestedInner { a: WithDestructor { x: 7890, y: 9870 } } };
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
some text to include in another file as string 1
|
||||
some text to include in another file as string 1
|
||||
|
|
@ -1 +1 @@
|
|||
some text to include in another file as string 2
|
||||
some text to include in another file as string 2.
|
||||
|
|
@ -1 +1 @@
|
|||
some text to include in another file as string 3
|
||||
some text to include in another file as string 3..
|
||||
|
|
@ -11,6 +11,9 @@
|
|||
// except according to those terms.
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
||||
|
|
@ -29,13 +32,42 @@
|
|||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print no_padding1
|
||||
// lldb-check:[...]$0 = { x = (0, 1) y = 2 z = (3, 4, 5) }
|
||||
// lldb-command:print no_padding2
|
||||
// lldb-check:[...]$1 = { x = (6, 7) y = { = (8, 9) = 10 } }
|
||||
|
||||
// lldb-command:print tuple_internal_padding
|
||||
// lldb-check:[...]$2 = { x = (11, 12) y = (13, 14) }
|
||||
// lldb-command:print struct_internal_padding
|
||||
// lldb-check:[...]$3 = { x = (15, 16) y = (17, 18) }
|
||||
// lldb-command:print both_internally_padded
|
||||
// lldb-check:[...]$4 = { x = (19, 20, 21) y = (22, 23) }
|
||||
|
||||
// lldb-command:print single_tuple
|
||||
// lldb-check:[...]$5 = { x = (24, 25, 26) }
|
||||
|
||||
// lldb-command:print tuple_padded_at_end
|
||||
// lldb-check:[...]$6 = { x = (27, 28) y = (29, 30) }
|
||||
// lldb-command:print struct_padded_at_end
|
||||
// lldb-check:[...]$7 = { x = (31, 32) y = (33, 34) }
|
||||
// lldb-command:print both_padded_at_end
|
||||
// lldb-check:[...]$8 = { x = (35, 36, 37) y = (38, 39) }
|
||||
|
||||
// lldb-command:print mixed_padding
|
||||
// lldb-check:[...]$9 = { x = { = (40, 41, 42) = (43, 44) } y = (45, 46, 47, 48) }
|
||||
|
||||
struct Struct {
|
||||
x: int
|
||||
}
|
||||
|
||||
trait Trait {
|
||||
fn generic_static_default_method<T>(arg1: int, arg2: T) -> int {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
arg1
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// ignore-lldb
|
||||
|
||||
// compile-flags:-g
|
||||
// gdb-command:run
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -33,6 +36,28 @@
|
|||
// gdb-command:print padding_at_end2
|
||||
// gdb-check:$7 = {{21, 22}, 23}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print no_padding1
|
||||
// lldb-check:[...]$0 = ((0, 1), 2, 3)
|
||||
// lldb-command:print no_padding2
|
||||
// lldb-check:[...]$1 = (4, (5, 6), 7)
|
||||
// lldb-command:print no_padding3
|
||||
// lldb-check:[...]$2 = (8, 9, (10, 11))
|
||||
|
||||
// lldb-command:print internal_padding1
|
||||
// lldb-check:[...]$3 = (12, (13, 14))
|
||||
// lldb-command:print internal_padding2
|
||||
// lldb-check:[...]$4 = (15, (16, 17))
|
||||
|
||||
// lldb-command:print padding_at_end1
|
||||
// lldb-check:[...]$5 = (18, (19, 20))
|
||||
// lldb-command:print padding_at_end2
|
||||
// lldb-check:[...]$6 = ((21, 22), 23)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
fn main() {
|
||||
|
|
@ -46,7 +71,7 @@ fn main() {
|
|||
let padding_at_end1: (i32, (i32, i16)) = (18, (19, 20));
|
||||
let padding_at_end2: ((i32, i16), i32) = ((21, 22), 23);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -35,6 +38,28 @@
|
|||
// gdb-check:$6 = {-10014, 10015}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print no_padding16
|
||||
// lldb-check:[...]$0 = NoPadding16(10000, -10001)
|
||||
|
||||
// lldb-command:print no_padding32
|
||||
// lldb-check:[...]$1 = NoPadding32(-10002, -10003.5, 10004)
|
||||
|
||||
// lldb-command:print no_padding64
|
||||
// lldb-check:[...]$2 = NoPadding64(-10005.5, 10006, 10007)
|
||||
|
||||
// lldb-command:print no_padding163264
|
||||
// lldb-check:[...]$3 = NoPadding163264(-10008, 10009, 10010, 10011)
|
||||
|
||||
// lldb-command:print internal_padding
|
||||
// lldb-check:[...]$4 = InternalPadding(10012, -10013)
|
||||
|
||||
// lldb-command:print padding_at_end
|
||||
// lldb-check:[...]$5 = PaddingAtEnd(-10014, 10015)
|
||||
|
||||
// This test case mainly makes sure that no field names are generated for tuple structs (as opposed
|
||||
// to all fields having the name "<unnamed_field>"). Otherwise they are handled the same a normal
|
||||
// structs.
|
||||
|
|
@ -55,7 +80,7 @@ fn main() {
|
|||
let internal_padding = InternalPadding(10012, -10013);
|
||||
let padding_at_end = PaddingAtEnd(-10014, 10015);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print union on
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -29,6 +32,23 @@
|
|||
// gdb-command:print univariant
|
||||
// gdb-check:$4 = {{-1}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print case1
|
||||
// lldb-check:[...]$0 = Case1(0, 31868, 31868, 31868, 31868)
|
||||
|
||||
// lldb-command:print case2
|
||||
// lldb-check:[...]$1 = Case2(0, 286331153, 286331153)
|
||||
|
||||
// lldb-command:print case3
|
||||
// lldb-check:[...]$2 = Case3(0, 6438275382588823897)
|
||||
|
||||
// lldb-command:print univariant
|
||||
// lldb-check:[...]$3 = TheOnlyCase(-1)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
// The first element is to ensure proper alignment, irrespective of the machines word size. Since
|
||||
|
|
@ -70,7 +90,7 @@ fn main() {
|
|||
|
||||
let univariant = TheOnlyCase(-1);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -24,6 +27,20 @@
|
|||
// gdb-command:print *univariant
|
||||
// gdb-check:$3 = {{123234}}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print *the_a
|
||||
// lldb-check:[...]$0 = TheA { x: 0, y: 8970181431921507452 }
|
||||
|
||||
// lldb-command:print *the_b
|
||||
// lldb-check:[...]$1 = TheB(0, 286331153, 286331153)
|
||||
|
||||
// lldb-command:print *univariant
|
||||
// lldb-check:[...]$2 = TheOnlyCase(123234)
|
||||
|
||||
#![allow(unused_variable)]
|
||||
#![feature(struct_variant)]
|
||||
|
||||
|
|
@ -60,7 +77,7 @@ fn main() {
|
|||
|
||||
let univariant = box TheOnlyCase(123234);
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -48,6 +51,43 @@
|
|||
// gdb-check:$14 = 8
|
||||
// gdb-command:continue
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print variable
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print constant
|
||||
// lldb-check:[...]$1 = 2
|
||||
// lldb-command:print a_struct
|
||||
// lldb-check:[...]$2 = Struct { a: -3, b: 4.5, c: 5 }
|
||||
// lldb-command:print *struct_ref
|
||||
// lldb-check:[...]$3 = Struct { a: -3, b: 4.5, c: 5 }
|
||||
// lldb-command:print *owned
|
||||
// lldb-check:[...]$4 = 6
|
||||
// lldb-command:print managed->val
|
||||
// lldb-check:[...]$5 = 7
|
||||
// lldb-command:print closure_local
|
||||
// lldb-check:[...]$6 = 8
|
||||
// lldb-command:continue
|
||||
|
||||
// lldb-command:print variable
|
||||
// lldb-check:[...]$7 = 1
|
||||
// lldb-command:print constant
|
||||
// lldb-check:[...]$8 = 2
|
||||
// lldb-command:print a_struct
|
||||
// lldb-check:[...]$9 = Struct { a: -3, b: 4.5, c: 5 }
|
||||
// lldb-command:print *struct_ref
|
||||
// lldb-check:[...]$10 = Struct { a: -3, b: 4.5, c: 5 }
|
||||
// lldb-command:print *owned
|
||||
// lldb-check:[...]$11 = 6
|
||||
// lldb-command:print managed->val
|
||||
// lldb-check:[...]$12 = 7
|
||||
// lldb-command:print closure_local
|
||||
// lldb-check:[...]$13 = 8
|
||||
// lldb-command:continue
|
||||
|
||||
#![feature(managed_boxes)]
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
|
@ -77,11 +117,11 @@ fn main() {
|
|||
let closure_local = 8;
|
||||
|
||||
let nested_closure = || {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
variable = constant + a_struct.a + struct_ref.a + *owned + *managed + closure_local;
|
||||
};
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
|
||||
nested_closure();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -22,6 +25,18 @@
|
|||
// gdb-command:print *owned
|
||||
// gdb-check:$3 = 5
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print constant
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print a_struct
|
||||
// lldb-check:[...]$1 = Struct { a: -2, b: 3.5, c: 4 }
|
||||
// lldb-command:print *owned
|
||||
// lldb-check:[...]$2 = 5
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct Struct {
|
||||
|
|
@ -42,7 +57,7 @@ fn main() {
|
|||
let owned = box 5;
|
||||
|
||||
let closure: proc() = proc() {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
do_something(&constant, &a_struct.a, owned);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
// gdb-command:finish
|
||||
|
|
@ -28,6 +31,24 @@
|
|||
// gdb-command:print managed->val
|
||||
// gdb-check:$6 = 7
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print variable
|
||||
// lldb-check:[...]$0 = 1
|
||||
// lldb-command:print constant
|
||||
// lldb-check:[...]$1 = 2
|
||||
// lldb-command:print a_struct
|
||||
// lldb-check:[...]$2 = Struct { a: -3, b: 4.5, c: 5 }
|
||||
// lldb-command:print *struct_ref
|
||||
// lldb-check:[...]$3 = Struct { a: -3, b: 4.5, c: 5 }
|
||||
// lldb-command:print *owned
|
||||
// lldb-check:[...]$4 = 6
|
||||
// lldb-command:print managed->val
|
||||
// lldb-check:[...]$5 = 7
|
||||
|
||||
#![feature(managed_boxes)]
|
||||
#![allow(unused_variable)]
|
||||
|
||||
|
|
@ -54,7 +75,7 @@ fn main() {
|
|||
let managed = box(GC) 7;
|
||||
|
||||
let closure = || {
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
variable = constant + a_struct.a + struct_ref.a + *owned + *managed;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -53,6 +56,29 @@
|
|||
// gdb-command:print *((int64_t[2]*)('vec-slices::MUT_VECT_SLICE'.data_ptr))
|
||||
// gdb-check:$15 = {64, 65}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
|
||||
// lldb-command:print empty
|
||||
// lldb-check:[...]$0 = &[]
|
||||
|
||||
// lldb-command:print singleton
|
||||
// lldb-check:[...]$1 = &[1]
|
||||
|
||||
// lldb-command:print multiple
|
||||
// lldb-check:[...]$2 = &[2, 3, 4, 5]
|
||||
|
||||
// lldb-command:print slice_of_slice
|
||||
// lldb-check:[...]$3 = &[3, 4]
|
||||
|
||||
// lldb-command:print padded_tuple
|
||||
// lldb-check:[...]$4 = &[(6, 7), (8, 9)]
|
||||
|
||||
// lldb-command:print padded_struct
|
||||
// lldb-check:[...]$5 = &[AStruct { x: 10, y: 11, z: 12 }, AStruct { x: 13, y: 14, z: 15 }]
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
struct AStruct {
|
||||
|
|
@ -81,7 +107,7 @@ fn main() {
|
|||
MUT_VECT_SLICE = VECT_SLICE;
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
// ignore-android: FIXME(#10381)
|
||||
|
||||
// compile-flags:-g
|
||||
|
||||
// === GDB TESTS ===================================================================================
|
||||
|
||||
// gdb-command:set print pretty off
|
||||
// gdb-command:rbreak zzz
|
||||
// gdb-command:run
|
||||
|
|
@ -21,6 +24,13 @@
|
|||
// gdb-command:print vec::VECT
|
||||
// gdb-check:$2 = {4, 5, 6}
|
||||
|
||||
|
||||
// === LLDB TESTS ==================================================================================
|
||||
|
||||
// lldb-command:run
|
||||
// lldb-command:print a
|
||||
// lldb-check:[...]$0 = [1, 2, 3]
|
||||
|
||||
#![allow(unused_variable)]
|
||||
|
||||
static mut VECT: [i32, ..3] = [1, 2, 3];
|
||||
|
|
@ -34,7 +44,7 @@ fn main() {
|
|||
VECT[2] = 6;
|
||||
}
|
||||
|
||||
zzz();
|
||||
zzz(); // #break
|
||||
}
|
||||
|
||||
fn zzz() {()}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue