aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/compile/macros/builtin/env.rs
blob: 83d3c2d6b28b75326335f0d837eda25021d556ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#![feature(rustc_attrs)]

#[rustc_builtin_macro]
macro_rules! env {
  () => {{}};
}

fn main () {
  let message = "error message";
  env! (message); // { dg-error "argument must be a string literal" "" }
  env! (); // { dg-error "env! takes 1 or 2 arguments" "" }
  env! (,); // { dg-error "expected expression, found .,." "" }
  env! (1); // { dg-error "argument must be a string literal" "" }
  env! ("NOT_DEFINED"); // { dg-error "environment variable 'NOT_DEFINED' not defined" "" }
  env! ("NOT_DEFINED",); // { dg-error "environment variable 'NOT_DEFINED' not defined" "" }
  env! ("NOT_DEFINED", 1); // { dg-error "argument must be a string literal" "" }
  env! ("NOT_DEFINED", "two", "three"); // { dg-error "env! takes 1 or 2 arguments" "" }
  env! ("NOT_DEFINED" "expected error message"); // { dg-error "expected token: .,." "" }
  env! ("NOT_DEFINED", "expected error message"); // { dg-error "expected error message" "" }
  env! ("NOT_DEFINED", "expected error message",); // { dg-error "expected error message" "" }
  env! (1, "two"); // { dg-error "argument must be a string literal" "" }
}