| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Strip off extra parens when looking for casts.
- Change the location info to point at the cast (instead of the
assignment).
For example, on
int *b;
#define a ((void*) b)
void f0() {
a = 10;
}
we now emit:
/tmp/t.c:4:3: error: assignment to cast is illegal, lvalue casts are not supported
a = 10;
^ ~
/tmp/t.c:2:12: note: instantiated from:
#define a ((void*) b)
~^~~~~~~~~~
instead of:
/tmp/t.c:4:5: error: expression is not assignable
a = 10;
~ ^
llvm-svn: 69114
|
|
|
|
| |
llvm-svn: 69106
|
|
|
|
|
|
|
|
|
|
| |
kind PCH handles that has an expression as an operand, so most of this
work is in the infrastructure to rebuild expression trees from the
serialized representation. We now store expressions in post-order
(e.g., Reverse Polish Notation), so that we can easily rebuild the
appropriate expression tree.
llvm-svn: 69101
|
|
|
|
|
|
| |
extension.
llvm-svn: 69100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows it to accurately measure tokens, so that we get:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~~^
instead of the woefully inferior:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~ ^
Most of this is just plumbing to push the reference around.
llvm-svn: 69099
|
|
|
|
|
|
|
| |
either unimplemented setter/getter or no
implementation directive.
llvm-svn: 69098
|
|
|
|
|
|
| |
llvm-gcc).
llvm-svn: 69097
|
|
|
|
| |
llvm-svn: 69093
|
|
|
|
| |
llvm-svn: 69091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nested name specifiers. Now we emit stuff like:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~ ^
instead of:
t.cpp:8:16: error: invalid token after top level declarator
static foo::X P;
^
This is inspired by a really awful error message I got from
g++ when I misspelt diag::kind as diag::Kind.
llvm-svn: 69086
|
|
|
|
| |
llvm-svn: 69084
|
|
|
|
|
|
|
| |
ParseDeclarationSpecifiers into its own function, no
functionality change.
llvm-svn: 69083
|
|
|
|
|
|
|
| |
expression (de-)serialization for VLAs, variable initializers,
enum constant initializers, and bitfield widths.
llvm-svn: 69075
|
|
|
|
|
|
| |
int in a bitfield. Shantonu found this in a gcc testsuite file.
llvm-svn: 69074
|
|
|
|
|
|
|
|
| |
be disallowed.
This builds on Eli's work from http://llvm.org/viewvc/llvm-project?view=rev&revision=65678.
llvm-svn: 69073
|
|
|
|
| |
llvm-svn: 69070
|
|
|
|
|
|
|
|
| |
C99 mode. This is a regression from an earlier patch of mine.
This also simplifies the linkage enums a bit.
llvm-svn: 69069
|
|
|
|
|
|
| |
This will match gcc's behavior in the arena.
llvm-svn: 69061
|
|
|
|
| |
llvm-svn: 69055
|
|
|
|
| |
llvm-svn: 69054
|
|
|
|
| |
llvm-svn: 69053
|
|
|
|
|
|
| |
no_inline on objc methods.
llvm-svn: 69051
|
|
|
|
| |
llvm-svn: 69050
|
|
|
|
|
|
| |
32 or less. Fixing the assert as it otherwise triggers for PIC16 which as i16 as int.
llvm-svn: 69046
|
|
|
|
|
|
|
|
| |
pulling some attribute munging stuff into GetLinkageForFunction.
This should fix PR3986
llvm-svn: 69045
|
|
|
|
| |
llvm-svn: 69044
|
|
|
|
|
|
|
|
|
| |
wrap-up (e.g., turning tentative definitions into definitions). Also,
very that, when we actually use the PCH file, we get the ride code
generation for tentative definitions and definitions that show up in
the PCH file.
llvm-svn: 69043
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it like 'id').
This fixes <rdar://problem/6782722> XCDataTipsManager.m registers, observes notifications in class methods.
The radar above is the result of clang typing 'self' in a class method as 'Class', which results in some spurious warnings (GCC types 'self' in a class method as 'id').
I considered changing the type of 'self' to 'id' (to conform to GCC), however this resulted in *many* test cases breaking. In addition, I really prefer a more strongly typed 'self'.
All in all, this is the least obtrusive fix I could find for removing the spurious warnings (though we do loose some valid warnings).
llvm-svn: 69041
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Pull out SetCommonAttributes, which handles the things common to
aliases, methods, functions, and variables.
- Pull out SetLLVMFunctionAttributesForDefinition, which handles the
LLVM attributes which we only want to apply to a definition (like
noinline and alwaysinline).
- Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes
and specialized).
- Kill SetFunctionAttributesForDefinition (inlined into sole caller).
- Inline SetGVDefinitionAttributes into SetMethodAttributes and
specialize.
- Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes.
This is supposed to be a no functionality change commit, but I may
have made a mistake.
llvm-svn: 69036
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 69035
|
|
|
|
|
|
|
| |
disambiguate it.
- No functionality change.
llvm-svn: 69034
|
|
|
|
| |
llvm-svn: 69033
|
|
|
|
|
|
| |
not in c89 mode).
llvm-svn: 69032
|
|
|
|
|
|
|
| |
inlined for some reason, then we don't want a strong or even weak
definition.
llvm-svn: 69031
|
|
|
|
| |
llvm-svn: 69030
|
|
|
|
| |
llvm-svn: 69029
|
|
|
|
| |
llvm-svn: 69028
|
|
|
|
| |
llvm-svn: 69027
|
|
|
|
| |
llvm-svn: 69026
|
|
|
|
| |
llvm-svn: 69025
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
t.c:3:8: warning: extra tokens at end of #endif directive
#endif foo
^
//
Don't do this in strict-C89 mode because bcpl comments aren't
valid there, and it is too much trouble to analyze whether
C block comments are safe.
llvm-svn: 69024
|
|
|
|
|
|
|
| |
Warning to properly report that it is an import/include_next instead of
claiming it is a #include.
llvm-svn: 69023
|
|
|
|
| |
llvm-svn: 69021
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Exposed quite a few Sema issues and a CodeGen crash.
- See FIXMEs in test case, and in SemaDecl.cpp (PR3983).
I'm skeptical that __private_extern__ should actually be a storage
class value. I think that __private_extern__ basically amounts to
extern A __attribute__((visibility("hidden")))
and would be better off handled (a) as that, or (b) with an extra bit
in the VarDecl.
llvm-svn: 69020
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 69019
|
|
|
|
| |
llvm-svn: 69010
|
|
|
|
| |
llvm-svn: 69007
|
|
|
|
|
|
|
|
|
| |
non-inline external definitions (and tentative definitions) that are
found at the top level. The corresponding declarations are stored in a
record in the PCH file, so that they can be provided to the
ASTConsumer (via HandleTopLevelDecl) when the PCH file is read.
llvm-svn: 69005
|
|
|
|
|
|
| |
This was exposed as a result of something else that was recently fixed.
llvm-svn: 69004
|
|
|
|
|
|
| |
expression or statement serialization before we can test them.
llvm-svn: 69002
|