[PATCH] Add more information when displaying a "read-only	variable is not assignable" error
    Richard Trieu 
    rtrieu at google.com
       
    Mon Jul 14 10:48:49 PDT 2014
    
    
  
```
$ cat c.cc
struct foo {
  int i;
  void f() const;
};
void foo::f() cont {
  i = 3;
}
$ clang c.cc
c.cc:6:5: error: read-only variable is not assignable
  i = 3;
  ~ ^
c.cc:5:11: note: method 'f' is declared const here
void foo::f() const {
~~~~~~~~~~^~~~~~~~~
1 error generated.
```
Note will point to function definition.
```
$ cat d.cc
typedef const int X;
void test(X x) {
  x = 5;
}
$ clang d.cc
d.cc:3:5: error: read-only variable is not assignable
  x = 5;
  ~ ^
d.cc:2:13: note: variable 'x' is declared here with type 'X' (aka 'const int') which is const
void test(X x) {
          ~~^
1 error generated.
```
No problems with typedefs.
I think the note should explicitly point out the const qualifier, otherwise the user will see "note: variable 'x' has type 'y'" which isn't very helpful.  Perhaps "note: variable "x" is declared here with type 'const int'; const qualifier prevents assignment" would be better?
http://reviews.llvm.org/D4479
    
    
More information about the cfe-commits
mailing list