aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/4-statements/switch_label_forms.zc
blob: ef5e33be16cfb520ba41b1686747c90084b2d774 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// expect: neg/chr/sum/enum/
// spec 4.7.1 and 3.14: labels are constant expressions (c precedence: 1 + 1 * 3 is 4)
include rt;
void pn(int x) { rt.put_n(x); rt.put_c(10); }
enum color { RED, GREEN };
void t(int k) {
	switch (k) {
	case -1: rt.put_s("neg");
	case 'a': rt.put_s("chr");
	case 1 + 1 * 3: rt.put_s("sum");
	case color.GREEN: rt.put_s("enum");
	}
	rt.put_c(10);
}
fn main() { t(-1); t('a'); t(4); t(1); return 0; }
// zc0: skip