blob: 918ca817bb052b631b939d57c7d86a5bc131afd9 [file] [log] [blame]
Douglas Gregor0b748912009-04-14 21:18:50 +00001// Header for PCH test exprs.c
2
3// DeclRefExpr
4int i = 17;
5enum Enum { Enumerator = 18 };
6typedef typeof(i) int_decl_ref;
7typedef typeof(Enumerator) enum_decl_ref;
8
Douglas Gregor17fc2232009-04-14 21:55:33 +00009// IntegerLiteral
Douglas Gregor0b748912009-04-14 21:18:50 +000010typedef typeof(17) integer_literal;
11typedef typeof(17l) long_literal;
12
Douglas Gregordb600c32009-04-15 00:25:59 +000013// FloatingLiteral and ParenExpr
Douglas Gregorc04db4f2009-04-14 23:59:37 +000014typedef typeof((42.5)) floating_literal;
Douglas Gregor17fc2232009-04-14 21:55:33 +000015
Douglas Gregor673ecd62009-04-15 16:35:07 +000016// StringLiteral
17const char *hello = "Hello" "PCH" "World";
18
Douglas Gregor17fc2232009-04-14 21:55:33 +000019// CharacterLiteral
Douglas Gregor0b748912009-04-14 21:18:50 +000020typedef typeof('a') char_literal;
Douglas Gregor17fc2232009-04-14 21:55:33 +000021
Douglas Gregor0b0b77f2009-04-15 15:58:59 +000022// UnaryOperator
23typedef typeof(-Enumerator) negate_enum;
24
25// SizeOfAlignOfExpr
26typedef typeof(sizeof(int)) typeof_sizeof;
27typedef typeof(sizeof(Enumerator)) typeof_sizeof2;
28
Douglas Gregor1f0d0132009-04-15 17:43:59 +000029// CallExpr
30double dplus(double x, double y);
31double d0, d1;
32typedef typeof((&dplus)(d0, d1)) call_returning_double;
33
34// MemberExpr
35struct S {
36 double x;
37};
38typedef typeof(((struct S*)0)->x) member_ref_double;
39
Douglas Gregordb600c32009-04-15 00:25:59 +000040// BinaryOperator
41typedef typeof(i + Enumerator) add_result;
42
43// CStyleCastExpr
44typedef typeof((void *)0) void_ptr;
45