1f08c3bdfSopenharmony_ciextern char string[];
2f08c3bdfSopenharmony_ciextern int *var;
3f08c3bdfSopenharmony_ci
4f08c3bdfSopenharmony_cistatic void templ(void)
5f08c3bdfSopenharmony_ci{
6f08c3bdfSopenharmony_ci	asm(string);
7f08c3bdfSopenharmony_ci}
8f08c3bdfSopenharmony_ci
9f08c3bdfSopenharmony_cistatic void ocons(void)
10f08c3bdfSopenharmony_ci{
11f08c3bdfSopenharmony_ci	asm("template" : [out] string (var) : [in] "r" (0));
12f08c3bdfSopenharmony_ci}
13f08c3bdfSopenharmony_ci
14f08c3bdfSopenharmony_cistatic void icons(void)
15f08c3bdfSopenharmony_ci{
16f08c3bdfSopenharmony_ci	asm("template" : [out] "=r" (var): [in] string (0));
17f08c3bdfSopenharmony_ci}
18f08c3bdfSopenharmony_ci
19f08c3bdfSopenharmony_cistatic void oexpr(void)
20f08c3bdfSopenharmony_ci{
21f08c3bdfSopenharmony_ci	asm("template" : [out] "=" (var[) : [in] "r" (0));
22f08c3bdfSopenharmony_ci}
23f08c3bdfSopenharmony_ci
24f08c3bdfSopenharmony_cistatic void iexpr(void)
25f08c3bdfSopenharmony_ci{
26f08c3bdfSopenharmony_ci	asm("template" : [out] "=r" (var) : [in] "r" (var[));
27f08c3bdfSopenharmony_ci}
28f08c3bdfSopenharmony_ci
29f08c3bdfSopenharmony_ci/*
30f08c3bdfSopenharmony_ci * check-name: asm-bad0
31f08c3bdfSopenharmony_ci *
32f08c3bdfSopenharmony_ci * check-error-start
33f08c3bdfSopenharmony_ciasm-bad0.c:6:13: error: string literal expected for inline asm
34f08c3bdfSopenharmony_ciasm-bad0.c:11:32: error: string literal expected for asm constraint
35f08c3bdfSopenharmony_ciasm-bad0.c:16:49: error: string literal expected for asm constraint
36f08c3bdfSopenharmony_ciasm-bad0.c:21:41: error: Expected ] at end of array dereference
37f08c3bdfSopenharmony_ciasm-bad0.c:21:41: error: got )
38f08c3bdfSopenharmony_ciasm-bad0.c:26:59: error: Expected ] at end of array dereference
39f08c3bdfSopenharmony_ciasm-bad0.c:26:59: error: got )
40f08c3bdfSopenharmony_ci * check-error-end
41f08c3bdfSopenharmony_ci */
42