]>
granicus.if.org Git - clang/log
Ted Kremenek [Wed, 24 Dec 2008 07:46:32 +0000 (07:46 +0000)]
Add a bunch of comments and FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61419
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 24 Dec 2008 07:29:24 +0000 (07:29 +0000)]
set region default value if there are not enough init values for array and struct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61418
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 24 Dec 2008 07:22:26 +0000 (07:22 +0000)]
Add serialization support for TypeOfType.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61417
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Wed, 24 Dec 2008 06:36:01 +0000 (06:36 +0000)]
Add serialization support for TypeOfExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61416
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 24 Dec 2008 02:52:09 +0000 (02:52 +0000)]
Keep track of template arguments when we parse them. Right now, we don't actually do anything with the template arguments, but they'll be used to create template declarations
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61413
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 24 Dec 2008 02:41:00 +0000 (02:41 +0000)]
Add integer arithmetic intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61412
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 24 Dec 2008 02:11:54 +0000 (02:11 +0000)]
Add store/set/load intrisics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61411
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 24 Dec 2008 01:45:22 +0000 (01:45 +0000)]
Start implementing some SSE2 instructions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61410
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 24 Dec 2008 01:05:03 +0000 (01:05 +0000)]
Comment and fixup GDM entries for RegionStore to use unique 'tag classes' to identify GDM entries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61409
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 24 Dec 2008 00:01:03 +0000 (00:01 +0000)]
Correct the order in which we cope with end-of-class-definition
semantics and improve our handling of default arguments. Specifically,
we follow this order:
- As soon as the see the '}' in the class definition, the class is
complete and we add any implicit declarations (default constructor,
copy constructor, etc.) to the class.
- If there are any default function arguments, parse them
- If there were any inline member function definitions, parse them
As part of this change, we now keep track of the the fact that we've
seen unparsed default function arguments within the AST. See the new
ParmVarDecl::hasUnparsedDefaultArg member. This allows us to properly
cope with calls inside default function arguments to other functions
where we're making use of the default arguments.
Made some C++ error messages regarding failed initializations more
specific.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61406
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 23 Dec 2008 22:24:07 +0000 (22:24 +0000)]
Sema for fastcall/stdcall stuff. Tests will follow.
Patch by Ilya Okonsky!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61394
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 23 Dec 2008 22:05:29 +0000 (22:05 +0000)]
Fix misguided type selection
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61393
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 23 Dec 2008 21:31:30 +0000 (21:31 +0000)]
When determining whether a class type has a const copy constructor, be
sure to look at all of the results returned by name lookup. Fixes
<rdar://problem/
6465262 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61388
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 23 Dec 2008 21:30:15 +0000 (21:30 +0000)]
Last patch, for now, to privde ObjC's encoding of types.
We now pass all gcc's encoding compatibility tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61387
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 23 Dec 2008 21:05:05 +0000 (21:05 +0000)]
Don't push OverloadedFunctionDecls onto the chain of declarations
attached to an identifier. Instead, all overloaded functions will be
pushed into scope, and we'll synthesize an OverloadedFunctionDecl on
the fly when we need it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61386
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 23 Dec 2008 20:11:22 +0000 (20:11 +0000)]
Fix <rdar://problem/
6465284 > clang ObjC rewriter: objc_super messed up again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61384
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 23 Dec 2008 19:56:47 +0000 (19:56 +0000)]
Lot more encoding work. We are closing the gap to
gcc compatibilty in all aspects of encoding now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61383
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 19:25:33 +0000 (19:25 +0000)]
Remove old PTH token-generation test harness.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61382
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 19:24:24 +0000 (19:24 +0000)]
PTH: Remove some methods and simplify some conditions in PTHLexer::Lex(). No big functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61381
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 18:41:34 +0000 (18:41 +0000)]
PTH: Use 3 bytes instead of 4 bytes to encode the persistent ID for a token.
- This reduces the PTH size for Cocoa.h by 7%.
- The increases PTH -Eonly speed for Cocoa.h by 0.8%.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61377
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 18:27:26 +0000 (18:27 +0000)]
Cosmetics: rename a variable and tighten spacing. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61375
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Tue, 23 Dec 2008 16:41:32 +0000 (16:41 +0000)]
Merge pr-3188.cpp into constructor.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61370
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 Dec 2008 04:57:30 +0000 (04:57 +0000)]
Add a setter for CVR qualifiers, patch by Lukasz Janyst!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61367
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 02:52:12 +0000 (02:52 +0000)]
PTH:
- Encode the token length with 2 bytes instead of 4.
- This reduces the size of the .pth file for Cocoa.h by 12%.
- This speeds up PTH time (-Eonly) on Cocoa.h by 1.6%.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61364
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 02:30:15 +0000 (02:30 +0000)]
PTH:
- In PTHLexer::Lex read all of the token data from PTH file before
constructing the token. The idea is to enhance locality.
- Do not use Read8/Read32 in PTHLexer::Lex. Inline these operations manually.
- Change PTHManager::ReadIdentifierInfo() to PTHManager::GetIdentifierInfo().
They are functionally the same except that PTHLexer::Lex() reads the
persistent id.
These changes result in a 3.3% speedup for PTH on Cocoa.h (-Eonly).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61363
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 23 Dec 2008 01:30:52 +0000 (01:30 +0000)]
PTH:
- Embed 'eom' tokens in PTH file.
- Use embedded 'eom' tokens to not lazily generate them in the PTHLexer.
This means that PTHLexer can always advance to the next token after
reading a token (instead of buffering tokens using a copy).
- Moved logic of 'ReadToken' into Lex. GetToken & ReadToken no longer exist.
- These changes result in a 3.3% speedup (-Eonly) on Cocoa.h.
- The code is a little gross. Many cleanups are possible and should be done.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61360
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 23 Dec 2008 00:53:59 +0000 (00:53 +0000)]
Add some block-pointer conversions in C++
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61359
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 23 Dec 2008 00:26:44 +0000 (00:26 +0000)]
Don't explicitly represent OverloadedFunctionDecls within
DeclContext. Instead, just keep the list of currently-active
declarations and only build the OverloadedFunctionDecl when we
absolutely need it.
This is a half-step toward eliminating the need to explicitly build
OverloadedFunctionDecls that store sets of overloaded
functions. This was suggested by Argiris a while back, and it's a good
thing for several reasons: first, it eliminates the messy logic that
currently tries to keep the OverloadedFunctionDecl in sync with the
declarations that are being added. Second, it will (eventually)
eliminate the need to allocate memory for overload sets, which could
help performance. Finally, it helps set us up for when name lookup can
return multiple (possibly ambiguous) results, as can happen with
lookup of class members in C++.
Next steps: make the IdentifierResolver store overloads as separate
entries in its list rather than replacing them with an
OverloadedFunctionDecl now, then see how far we can go toward
eliminating OverloadedFunctionDecl entirely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61357
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 22 Dec 2008 23:22:27 +0000 (23:22 +0000)]
More encoding support; in this case, encoding of
outer-most const of pointer types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61355
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Mon, 22 Dec 2008 22:16:07 +0000 (22:16 +0000)]
Fix <rdar://problem/
6463613 > clang ObjC rewriter: assertion failure rewriting @selector?.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61351
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 22 Dec 2008 21:43:13 +0000 (21:43 +0000)]
Guard against the return of PR3188
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61348
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 22 Dec 2008 21:35:02 +0000 (21:35 +0000)]
Full AST support and better Sema support for C++ try-catch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61346
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 22 Dec 2008 20:51:52 +0000 (20:51 +0000)]
Support conversion from a null pointer constant o any Objective-C object pointer type. Fixes rdar://problem/
6463298
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61340
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 22 Dec 2008 20:41:58 +0000 (20:41 +0000)]
Fixed a bug showed up the meta-data for protocol
instance methods by building print-class-info.m,
whose output is now identical to what gcc puts out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61339
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 22 Dec 2008 19:15:10 +0000 (19:15 +0000)]
Partial AST and Sema support for C++ try-catch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61337
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 22 Dec 2008 19:05:31 +0000 (19:05 +0000)]
Patch to remove bogus warning in case of @dynamic
property in a category and to issue diagnostics
for mismatch method in some other cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61336
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Mon, 22 Dec 2008 17:51:10 +0000 (17:51 +0000)]
Expr and Stmt must be destroyed with Destroy, not delete. Fixes PR/3245.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61335
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 17:42:23 +0000 (17:42 +0000)]
Fix test failures noticed by Fariborz.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61334
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 22 Dec 2008 08:30:52 +0000 (08:30 +0000)]
Fix initialization order.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61333
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 07:36:02 +0000 (07:36 +0000)]
Flip the switch and start using the new xmmintrin.h
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61332
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 07:34:23 +0000 (07:34 +0000)]
Comment out _mm_insert_pi16 for now
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61331
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 07:08:03 +0000 (07:08 +0000)]
Implement the last intrinsics, _mm_insert_pi16 is the last remaining one now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61330
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 22 Dec 2008 05:46:06 +0000 (05:46 +0000)]
Add support for calls to overloaded member functions. Things to note:
- Overloading has to cope with having both static and non-static
member functions in the overload set.
- The call may or may not have an implicit object argument,
depending on the syntax (x.f() vs. f()) and the context (static
vs. non-static member function).
- We now generate MemberExprs for implicit member access expression.
- We now cope with mutable whenever we're building MemberExprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61329
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 05:42:03 +0000 (05:42 +0000)]
Add macros
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61328
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 05:20:34 +0000 (05:20 +0000)]
Add misc intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61327
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 05:00:07 +0000 (05:00 +0000)]
Add control register intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61326
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 04:55:36 +0000 (04:55 +0000)]
Add integer intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61325
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 04:54:32 +0000 (04:54 +0000)]
Generate code for __builtin_ia32_pshufw
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 03:50:21 +0000 (03:50 +0000)]
Add cacheability intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61323
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 03:16:40 +0000 (03:16 +0000)]
Add store intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61322
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 02:51:35 +0000 (02:51 +0000)]
Add set intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 02:43:30 +0000 (02:43 +0000)]
Add load intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61320
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 22 Dec 2008 01:52:37 +0000 (01:52 +0000)]
Add an option to make 'RemoveDeadBindings' a configurable behavior. This enables
us to measure the effect of this optimization.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61319
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 01:26:50 +0000 (01:26 +0000)]
_mm_cvtsi64_ss is 64-bit only, so wrap it in #ifdef __x86_64__
Add composite conversion intrinsics - will implement them shortly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61318
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 00:48:30 +0000 (00:48 +0000)]
Add a couple of conversion intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61317
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 00:28:39 +0000 (00:28 +0000)]
Add comparison intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61316
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 22 Dec 2008 00:01:20 +0000 (00:01 +0000)]
Check in an in-progress version of xmmintrin.h that I had lying around.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61315
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 22:39:40 +0000 (22:39 +0000)]
Add codegen support for __null
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61314
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 21 Dec 2008 19:24:58 +0000 (19:24 +0000)]
Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61313
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 21 Dec 2008 16:41:36 +0000 (16:41 +0000)]
Parser support for C++ try-catch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61312
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 21 Dec 2008 13:00:52 +0000 (13:00 +0000)]
Correct comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61311
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 21 Dec 2008 12:17:24 +0000 (12:17 +0000)]
Test case makes a platform assumption, so force triple.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61310
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 21 Dec 2008 12:04:03 +0000 (12:04 +0000)]
Convert a few Stmt actions to smart pointers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61309
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 21 Dec 2008 11:56:24 +0000 (11:56 +0000)]
Document how move semantics and the emulation work. Do this in-file because it's such a specific thing.
Restructure code for less duplication.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61308
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 21 Dec 2008 04:46:06 +0000 (04:46 +0000)]
fix 80-col violation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61306
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 03:48:05 +0000 (03:48 +0000)]
Implement alignof for vla types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61305
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 21 Dec 2008 03:46:11 +0000 (03:46 +0000)]
Use utility method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61304
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 03:44:36 +0000 (03:44 +0000)]
Add ASTContext::getBaseElementType and use it in CodeGenFunction::EmitArraySubscriptExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61303
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 03:40:32 +0000 (03:40 +0000)]
Commit the right version of the test
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61302
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 03:33:21 +0000 (03:33 +0000)]
Make sure to emit the size expression for sizeof(type)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 21 Dec 2008 03:31:01 +0000 (03:31 +0000)]
Use utility methods. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61300
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 21 Dec 2008 03:26:05 +0000 (03:26 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61299
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 21 Dec 2008 01:15:32 +0000 (01:15 +0000)]
Fix for PR3246: an empty clobber list is the empty string, not a null
string.
That said, we should probably try and track down the correct clobber
lists for the targets that don't have them (PPC, ARM, and Sparc),
so that we can generate correct code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61298
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 00:16:32 +0000 (00:16 +0000)]
Did not mean to commit this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61296
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 21 Dec 2008 00:11:23 +0000 (00:11 +0000)]
Handle VLA indexing
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61295
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 20 Dec 2008 23:49:58 +0000 (23:49 +0000)]
Add support for member references (E1.E2, E1->E2) with C++ semantics,
which can refer to static data members, enumerators, and member
functions as well as to non-static data members.
Implement correct lvalue computation for member references in C++.
Compute the result type of non-static data members of reference type properly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61294
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 20 Dec 2008 23:29:59 +0000 (23:29 +0000)]
Finish up saving original parameter type and
using it in ObjC's method parameter encoding.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61293
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 20 Dec 2008 23:18:29 +0000 (23:18 +0000)]
Extend the unsupported error to include break and continue, and fix a
warning by using an unsigned index.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61292
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 20 Dec 2008 23:11:59 +0000 (23:11 +0000)]
Make VLAs usable, and make basic usage work correctly. Also, add a
simple test that actually does VLA codegen.
Note that despite the fact that the alloca isn't in the entry block, it
should dominate all uses; this is guaranteed by the restrictions on goto
into VLA scope in C99.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61291
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 20 Dec 2008 21:51:53 +0000 (21:51 +0000)]
Handle typedefs to VLAs (Emit the size expr when we encounter the typedef
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61290
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 20 Dec 2008 21:33:38 +0000 (21:33 +0000)]
Check the entire StackSaveValues stack for VLAs when dealing with goto and return statements. Noticed by Eli Friedman.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61289
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 20 Dec 2008 21:28:43 +0000 (21:28 +0000)]
Make sure to generate code for arguments that have a variably modified type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61288
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 20 Dec 2008 21:06:28 +0000 (21:06 +0000)]
Add case for the new AST node.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61287
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 20 Dec 2008 20:56:12 +0000 (20:56 +0000)]
introducing ParmVarWithOriginalTypeDecl class to
keep track of the original parameter decl. types.
This is work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61286
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 20 Dec 2008 20:46:34 +0000 (20:46 +0000)]
Change EmitVLASize to take a QualType that must be a variably modified type.
Emit the size even if the declared type is a variably modified type. This lets us handle
void f(int n) {
int (*a)[n];
printf("size: %d\n", sizeof(*a));
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61285
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 20 Dec 2008 20:27:15 +0000 (20:27 +0000)]
Split up emitting of VLA sizes and getting the size of a VLA.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61284
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 20 Dec 2008 19:33:21 +0000 (19:33 +0000)]
Add some ErrorUnsupported calls and turn on VLA codegen again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61283
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 20 Dec 2008 19:17:01 +0000 (19:17 +0000)]
Strangely enough, name of ObjC class is not encoded into the
full encoding of the class which has an ivar of pointer to this
class. Its name is encoded in the type for the ivar in the
ivar-list metadata. This patch conforms to the above rule.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61282
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sat, 20 Dec 2008 09:35:34 +0000 (09:35 +0000)]
Implement checks for bool in increment and decrement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61275
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 20 Dec 2008 06:32:12 +0000 (06:32 +0000)]
Lazy bingding for region-store manager.
* Now Bind() methods take and return GRState* because binding could
also alter GDM.
* No variables are initialized except those declared with initial
values.
* failed C test cases are due to bugs in RemoveDeadBindings(),
which removes constraints that is still alive. This will be fixed in later
patch.
* default value of array and struct regions will be implemented in later patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61274
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 20 Dec 2008 02:16:48 +0000 (02:16 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61273
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 20 Dec 2008 01:41:43 +0000 (01:41 +0000)]
Fix <rdar://problem/
6454568 >: BugReporter should correctly handle switch statements with no default case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61270
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Dec 2008 23:51:20 +0000 (23:51 +0000)]
avoid using a typedef that isn't always included from headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61269
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 19 Dec 2008 23:34:38 +0000 (23:34 +0000)]
More encoding support. This time for
@encode of classes and bitfields.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61268
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 19 Dec 2008 20:58:05 +0000 (20:58 +0000)]
Get rid of the old Expr::Evaluate variant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 19 Dec 2008 20:56:23 +0000 (20:56 +0000)]
Pass -fblocks to clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61258
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 19 Dec 2008 19:16:37 +0000 (19:16 +0000)]
Add a missing @end. Why didn't this get diagnosed?
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61256
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 19 Dec 2008 19:13:09 +0000 (19:13 +0000)]
Support more implicit conversions for Objective-C types. Addresses <rdar://problem/
6458293 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61255
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 19 Dec 2008 17:45:06 +0000 (17:45 +0000)]
Test case for my last @encode patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61247
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 19 Dec 2008 17:40:08 +0000 (17:40 +0000)]
Allow downcasts of pointers to Objective-C interfaces, with a
warning. This matches GCC's behavior and addresses
<rdar://problem/
6458293 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61246
91177308 -0d34-0410-b5e6-
96231b3b80d8