diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-02-02 01:23:29 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-02-02 01:23:29 +0000 |
| commit | cf25141d1442c04f36fc8e8342763cd043218b7b (patch) | |
| tree | a26fd93990ad3993a18124fe066d50e560257d7c /llvm/lib | |
| parent | 13ad81bd70afaf35d54a080893dc6beb7e1c1b0c (diff) | |
| download | bcm5719-llvm-cf25141d1442c04f36fc8e8342763cd043218b7b.tar.gz bcm5719-llvm-cf25141d1442c04f36fc8e8342763cd043218b7b.zip | |
Implement PR6180, substantially improving the diagnostics we get from
forgetting a ';' at the end of a struct. For something like:
class c {
}
void foo() {}
we now produce:
t.cc:3:2: error: expected ';' after class
}
^
;
instead of:
t.cc:4:1: error: cannot combine with previous 'class' declaration specifier
void foo() {}
^
t.cc:2:7: error: 'class c' can not be defined in the result type of a function
class c {
^
GCC produces:
t.cc:4: error: new types may not be defined in a return type
t.cc:4: note: (perhaps a semicolon is missing after the definition of ‘c’)
t.cc:4: error: two or more data types in declaration of ‘foo’
I *think* I got the follow set right, but if I forgot anything, we'll start
getting spurious "expected ';' after class" errors, let me know if you see
any.
llvm-svn: 95042
Diffstat (limited to 'llvm/lib')
0 files changed, 0 insertions, 0 deletions

