mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-03 16:26:05 +01:00
This better reflects the purpose of these semantics nodes, and prepares for adding TupleValue and TupleInit nodes to represent forming values and initializers from literals.
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
// AUTOUPDATE
|
|
|
|
fn Deref(n: i32) {
|
|
// CHECK:STDERR: fail_dereference_not_pointer.carbon:[[@LINE+3]]:3: Cannot dereference operand of non-pointer type `i32`.
|
|
// CHECK:STDERR: *n;
|
|
// CHECK:STDERR: ^
|
|
*n;
|
|
// CHECK:STDERR: fail_dereference_not_pointer.carbon:[[@LINE+3]]:3: Cannot dereference operand of non-pointer type `() as type`.
|
|
// CHECK:STDERR: *();
|
|
// CHECK:STDERR: ^
|
|
*();
|
|
// CHECK:STDERR: fail_dereference_not_pointer.carbon:[[@LINE+3]]:3: Cannot dereference operand of non-pointer type `{} as type`.
|
|
// CHECK:STDERR: *{};
|
|
// CHECK:STDERR: ^
|
|
*{};
|
|
}
|
|
|
|
// CHECK:STDOUT: package {
|
|
// CHECK:STDOUT: %.loc7 = fn_decl @Deref
|
|
// CHECK:STDOUT: }
|
|
// CHECK:STDOUT:
|
|
// CHECK:STDOUT: fn @Deref(%n: i32) {
|
|
// CHECK:STDOUT: !entry:
|
|
// CHECK:STDOUT: %.loc11: ref <error> = dereference %n
|
|
// CHECK:STDOUT: %.loc15_5.1: type = tuple_type ()
|
|
// CHECK:STDOUT: %.loc15_5.2: () = tuple_literal ()
|
|
// CHECK:STDOUT: %.loc15_3: ref <error> = dereference %.loc15_5.2
|
|
// CHECK:STDOUT: %.loc19_5.1: type = struct_type {}
|
|
// CHECK:STDOUT: %.loc19_5.2: {} = struct_literal ()
|
|
// CHECK:STDOUT: %.loc19_3: ref <error> = dereference %.loc19_5.2
|
|
// CHECK:STDOUT: return
|
|
// CHECK:STDOUT: }
|