ispc/ispc — Issue #142: trailing 'uniform' cv qualifier is lost if no parameter name in func decl
Author: mmp
Created: 2012-01-05 00:06:32+00:00
State: open
Labels: bugs

Given

```
void foo(uniform int * uniform, uniform int);

void bar(uniform int * uniform ptr) {
foo(ptr, 0);
}
```

The generated code indicates that the compiler is under the impression that foo takes a varying pointer:

```
declare void @"foo___vptrUi"(<8 x i64>, i32, <8 x i32>) nounwind
```

(And ptr is smeared out before the call, etc.)

If foo is instead declared like:

```
void foo(uniform int * uniform x, uniform int);
```

Then the right thing happens:

```
declare void @"foo___uptrUi"(i32* noalias, i32, <8 x i32>) nounwind
```