+#pragma MSP stage(vertex)
+layout(location=0) in vec4 position;
+layout(location=1) in float scale;
+layout(location=2) in float size;
+float func()
+{
+ float scale = size*2.0;
+ return scale*scale;
+}
+void main()
+{
+ float size = scale+1.0;
+ float s = func()+1.0;
+ gl_Position = position*size*size*s*s;
+}
+
+/* Expected output: vertex
+layout(location=0) in vec4 position;
+layout(location=1) in float scale;
+layout(location=2) in float size;
+void main()
+{
+ float _main_size = scale+1.0;
+ float _func_scale = size*2.0;
+ float s = _func_scale*_func_scale+1.0;
+ gl_Position = position*_main_size*_main_size*s*s;
+}
+*/