Chris Lattner
37e0587839
remove the source location arguments to various target query methods.
...
llvm-svn: 47954
2008-03-05 18:54:05 +00:00
Anders Carlsson
19fe116fc0
Handle simple asm statements correctly.
...
llvm-svn: 46777
2008-02-05 23:03:50 +00:00
Fariborz Jahanian
284011b462
Rewriting of @synchronized. This has one FIXME in it. But this should allow @sychronized to be rewritten.
...
llvm-svn: 46533
2008-01-29 22:59:37 +00:00
Fariborz Jahanian
48085b86ae
AST for @synchronized.
...
llvm-svn: 46524
2008-01-29 19:14:59 +00:00
Chris Lattner
a65e1f3b31
Move promoteExprToType from being a static method in SemaExpr.cpp to being
...
a method named ImpCastExprToType in Sema.
Use this method to insert implicit casts for case statements from their
operand type to the condition type of the switch. This fixes a crash on
test/CodeGen/statements.c, reported by Eli Friedman.
llvm-svn: 46083
2008-01-16 19:17:22 +00:00
Fariborz Jahanian
939776756f
Recover from user typo not having proper @interface decl and a bad foreach decl.
...
llvm-svn: 45839
2008-01-10 20:33:58 +00:00
Fariborz Jahanian
82ae0152a7
Allow messaging expression as foreach's collection expression.
...
llvm-svn: 45793
2008-01-10 00:24:29 +00:00
Ted Kremenek
1b0ea82459
Substituted all instances of the string "Objc" for "ObjC". This fixes
...
some naming inconsistencies in the names of classes pertaining to Objective-C
support in clang.
llvm-svn: 45715
2008-01-07 19:49:32 +00:00
Fariborz Jahanian
fef287cb67
Issue diagnostics if more than one declaration in objectove-c's foreach-stmt header.
...
llvm-svn: 45708
2008-01-07 17:52:35 +00:00
Fariborz Jahanian
7b1b947ca1
twiks based on Chris's comment. No need to iterate thru a list of declarations
...
in a foreach-statement which is illegal (but not yet caught) .
llvm-svn: 45615
2008-01-05 01:40:08 +00:00
Fariborz Jahanian
bad3218954
Minor refactoring of foreach's semantics code per Chris's suggetion.
...
llvm-svn: 45604
2008-01-04 23:59:09 +00:00
Chris Lattner
9bad62c72a
Merge all the 'assignment' diagnostic code into one routine, decloning
...
it from several places. This merges the diagnostics, making them more
uniform and fewer in number. This also simplifies and cleans up the code.
Some highlights:
1. This removes a bunch of very-similar diagnostics.
2. This renames AssignmentCheckResult -> AssignConvertType
3. This merges PointerFromInt + IntFromPointer which were always treated the same.
4. This updates a bunch of test cases that have minor changes to the produced diagnostics.
llvm-svn: 45589
2008-01-04 18:04:52 +00:00
Fariborz Jahanian
775d5d02af
Patch to add semantics check for ObjC2's foreacn statement.
...
llvm-svn: 45561
2008-01-04 00:27:46 +00:00
Chris Lattner
0a788433eb
give better diagnostics for converting between function pointer and void*.
...
llvm-svn: 45556
2008-01-03 22:56:36 +00:00
Fariborz Jahanian
732b8c2dc5
Patch to parse/build AST ObjC2's foreach statement.
...
llvm-svn: 45539
2008-01-03 17:55:25 +00:00
Chris Lattner
5b12ab8c93
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change.
llvm-svn: 45410
2007-12-29 19:59:25 +00:00
Fariborz Jahanian
1f606a999e
Simplified setting up Method's scope before generating AST for its nody.
...
llvm-svn: 44576
2007-12-04 19:20:11 +00:00
Steve Naroff
0ee0b0ab8c
Move the null pointer constant check from Sema::CheckSingleInitializer/ActOnCallExpr/CheckMessageArgumentTypes/ActOnReturnStmt to Sema::CheckSingleAssignmentConstraints. This makes sure all null pointer assignments are considered compatible.
...
Thanks to Seo Sanghyeon for the bug, follow-through, and patch!
llvm-svn: 44366
2007-11-27 17:58:44 +00:00
Anders Carlsson
f511f646a4
Add more semantic analysis for inline asm statements.
...
llvm-svn: 44349
2007-11-27 04:11:28 +00:00
Anders Carlsson
290aa8560b
Check that the clobber registers are valid.
...
llvm-svn: 44311
2007-11-25 00:25:21 +00:00
Anders Carlsson
660bdd1c87
Keep track of whether the asm is volatile or not.
...
llvm-svn: 44297
2007-11-23 23:12:25 +00:00
Anders Carlsson
80a5ea3552
Check asm input and output expressions.
...
llvm-svn: 44289
2007-11-23 19:43:50 +00:00
Anders Carlsson
94ea8aab34
Store output and input operands as well as clobber information in the AsmStmt. Ted, could you please review the serialization/deserialization code?
...
llvm-svn: 44266
2007-11-22 01:36:19 +00:00
Anders Carlsson
81a5a69682
Store inline asm code in the AST.
...
llvm-svn: 44255
2007-11-20 19:21:03 +00:00
Fariborz Jahanian
adfbbc3330
AST for objective-c's @throw statement and its pretty-printing.
...
llvm-svn: 43802
2007-11-07 02:00:49 +00:00
Fariborz Jahanian
f859ef293c
AST for @try statement.
...
llvm-svn: 43640
2007-11-02 15:39:31 +00:00
Fariborz Jahanian
71234d8a9e
AST for @finally statement.
...
llvm-svn: 43629
2007-11-02 00:18:53 +00:00
Fariborz Jahanian
9e63b98de7
AST build for @catch clause (this is work in progress).
...
llvm-svn: 43628
2007-11-01 23:59:59 +00:00
Chris Lattner
73c56c0735
Implement *skeletal* support for representing GNU inline asm stmts in the AST,
...
resolving a crash on a .i file in PR1750. We now generate 49 errors on the
.i file in that bug.
llvm-svn: 43433
2007-10-29 04:04:16 +00:00
Anders Carlsson
db83d77c78
Emit a warning when the body of an if block is a NullStmt.
...
llvm-svn: 42840
2007-10-10 20:50:11 +00:00
Chris Lattner
ef6b136781
move IdentifierTable.h from liblex to libbasic.
...
llvm-svn: 42730
2007-10-07 08:58:51 +00:00
Chris Lattner
4b2ff02f72
Make case sorting deterministic by not depending on pointer
...
values. Patch mostly by Gabor Greif for PR1682.
llvm-svn: 42203
2007-09-21 18:15:22 +00:00
Steve Naroff
66356bda5d
Rename statement actions (from Parse-prefix to ActOn-prefix).
...
llvm-svn: 42000
2007-09-16 14:56:35 +00:00
Hartmut Kaiser
0a6b11db24
Updated VC++ build system.
...
Silenced a couple of VC++ warnings.
llvm-svn: 41994
2007-09-16 00:04:22 +00:00
Steve Naroff
a23cc79654
Move Decl::NextDeclarator (w/ setters/getters) down to ScopedDecl/FieldDecl.
...
Decl is now svelte:-)
llvm-svn: 41935
2007-09-13 23:52:58 +00:00
Steve Naroff
9def2b15c1
Phase 2 of making the Decl class more lightweight...
...
Move Identifier/Loc instance variables (and associated getters/setters) down from Decl to ScopedDecl/FieldDecl.
Objc AST's can now inherit from Decl without getting instance variables and types that are C specific. For now, I am keeping NextDeclarator, since I believe it may be useful to ObjC. If not, it can be moved later.
llvm-svn: 41934
2007-09-13 21:41:19 +00:00
Ted Kremenek
73c18e0362
Added LabelLoc to GotoStmt to record the source location of the label token
...
in the actual GotoStmt.
Fixed bug where GotoStmt::getSourceRange incorrectly used the target LabelStmt
to compute its extent.
llvm-svn: 41745
2007-09-06 17:11:52 +00:00
Chris Lattner
1463cca1cc
Add a method required by the VC++ STL, patch by Hartmut Kaiser!
...
llvm-svn: 41687
2007-09-03 18:31:57 +00:00
Steve Naroff
42a350a18a
Finish converting SwitchStmt AST to source ranges.
...
Move DumpSourceRange() to DumpStmt().
Now -parse-ast-dump will display source range info for all stmts/exprs.
One day we should implement the source range protocol for Decls.
llvm-svn: 41670
2007-09-01 21:08:38 +00:00
Steve Naroff
dc9f36e6c4
Convert more statments over to SourceRanges...
...
llvm-svn: 41666
2007-08-31 23:49:30 +00:00
Steve Naroff
33f3d05081
Move SourceRange protocol from Expr->Stmt.
...
Converted many of the statements over. Still a hanful left...
llvm-svn: 41663
2007-08-31 23:28:33 +00:00
Chris Lattner
cac27a5478
Fix a bug/missing-feature Ted noticed: the 'unused' warning should not
...
warn about the last stmt in a stmtexpr, f.e. there should be no warning for:
int maxval_stmt_expr(int x, int y) {
return ({int _a = x, _b = y; _a > _b ? _a : _b; });
}
llvm-svn: 41655
2007-08-31 21:49:55 +00:00
Chris Lattner
24b51ff752
Emit a slightly better warning for unused values for unary and binary operators:
...
t2.c:3:18: warning: expression result unused
x = ++x, ++y, y+2;
~~~~~~~~~~~~^ ~~~
llvm-svn: 41551
2007-08-28 18:40:30 +00:00
Chris Lattner
39f920f35b
now that all the infrastructure is in place, enforce C99 6.8.5p3.
...
Note the FIXME: we need some way to mark a decl erroneous :)
llvm-svn: 41524
2007-08-28 05:03:08 +00:00
Chris Lattner
773c0596b8
If the condition of a for statement is promoted, make sure the
...
implicit cast gets linked back into the AST.
llvm-svn: 41523
2007-08-28 04:55:47 +00:00
Chris Lattner
d864daf5c6
extwarn about decls intermixed with code in c89 mode.
...
llvm-svn: 41477
2007-08-27 04:29:41 +00:00
Chris Lattner
dfaf9f8c2f
implement a fixme: __extension__ marker on decls in compound stmts.
...
llvm-svn: 41473
2007-08-27 01:01:57 +00:00
Chris Lattner
9decfbabd3
Fix a bug reported by Keith Bauer
...
llvm-svn: 41452
2007-08-26 17:32:59 +00:00
Chris Lattner
247ef955bc
in the truncation case, make sure to propagate the sign correctly, this
...
fixes an assertion on:
void f (int z) { switch (z) { case ~0ULL: case -1: return; } }
testcase from Neil.
llvm-svn: 41343
2007-08-23 22:08:35 +00:00
Chris Lattner
67998451c7
finish off switch case overlap checking, adding support for
...
verifying case ranges.
llvm-svn: 41331
2007-08-23 18:29:20 +00:00