Ted Kremenek
9731a97220
Removed disclaimer about checker-36, which is old news.
...
llvm-svn: 53588
2008-07-15 03:49:15 +00:00
Ted Kremenek
fd7efdf20d
Provide an "Analysis Scope" for Analyses so checks can either be run on code declarations (bodies) or Objective-C @implementation blocks.
...
llvm-svn: 53584
2008-07-15 00:46:02 +00:00
Ted Kremenek
5470e0c7e1
Re-enable missing -dealloc check.
...
llvm-svn: 53578
2008-07-14 23:56:31 +00:00
Ted Kremenek
70fe0ca126
Update Xcode project.
...
llvm-svn: 53577
2008-07-14 23:42:26 +00:00
Ted Kremenek
2fa70832e4
Using new clang option to invoke the type-signature check of Objective-C instance methods.
...
llvm-svn: 53576
2008-07-14 23:41:49 +00:00
Ted Kremenek
3063b73773
Break off declaration of Analysis enum into Analyses.def. The driver options in
...
clang.cpp now #include these definitions to create the command line options, and
AnalysisConsumer #includes this file to generate the switch statement to create
actions.
Renamed -check-objc-methodsigs to -warn-objc-methodsigs.
The "missing -dealloc" check is now optional: -warn-objc-missing-dealloc
llvm-svn: 53575
2008-07-14 23:41:13 +00:00
Ted Kremenek
c18255d80f
Refactor Dead Stores error reporting to use the simplified BugReporter::EmitBasicReport interface.
...
llvm-svn: 53573
2008-07-14 20:56:04 +00:00
Nate Begeman
191a6b1f1b
http://llvm.org/bugs/show_bug.cgi?id=2523
...
Add some code to handle vector comparisons, which is the language side
of the llvm vicmp/vfcmp instructions. Also make the vector-vector and
vector-scalar asign checks a bit more sane under the presence of lax vector
conversions.
llvm-svn: 53565
2008-07-14 18:02:46 +00:00
Ted Kremenek
0255531dd3
Added method "EmitBasicReport" to BugReporter to simplify the emission of simple bug diagnostics.
...
Refactored error reporting in CheckObjCDealloc and CheckObjCInstMethSignature to use this new bug reporting interface (major code simplification).
llvm-svn: 53560
2008-07-14 17:40:50 +00:00
Chris Lattner
6d1a3c2e2b
remove CGObjCEtoile until it compiles.
...
llvm-svn: 53552
2008-07-14 16:54:05 +00:00
Ted Kremenek
a696ca66e9
Fix minor mistake in clang checkout instructions.
...
llvm-svn: 53550
2008-07-14 14:40:22 +00:00
Cedric Venet
455298f2d6
test commit. Remove previously added line.
...
llvm-svn: 53524
2008-07-13 19:42:06 +00:00
Cedric Venet
1e43f55933
test commit. Add a blank line.
...
llvm-svn: 53522
2008-07-13 19:34:37 +00:00
Argyrios Kyrtzidis
07b8b63f9f
Use of NextToken() makes ParseIdentifierStatement unnecessary.
...
Simplify the parser by removing Parser::ParseIdentifierStatement.
llvm-svn: 53520
2008-07-12 21:04:42 +00:00
Argyrios Kyrtzidis
715eabcef5
Convert CRLF -> LF line endings.
...
llvm-svn: 53519
2008-07-12 20:28:04 +00:00
Cedric Venet
71262487c3
Added two new files to VC++ project.
...
llvm-svn: 53518
2008-07-12 19:24:14 +00:00
Chris Lattner
477c4be1e9
expand casts to handle what isIntegerConstantExpr handles.
...
Casts from pointers remain a problem. :)
llvm-svn: 53501
2008-07-12 01:15:53 +00:00
Chris Lattner
7174bf3722
Add support for __builtin_type_compatible_p, enums, etc.
...
llvm-svn: 53500
2008-07-12 00:38:25 +00:00
Chris Lattner
9941570ce9
start remembering diagnostics for various cases, add some missing
...
code. Switch to Eli's getIntWidth method.
llvm-svn: 53499
2008-07-12 00:14:42 +00:00
Ted Kremenek
20704a0ce8
Updated latest checker build. This build includes the new check for type-compatibility of the return types of ObjC methods.
...
llvm-svn: 53496
2008-07-11 23:29:43 +00:00
Ted Kremenek
e5b5953672
Tidy up error message.
...
llvm-svn: 53493
2008-07-11 23:17:01 +00:00
Ted Kremenek
ba1196298a
Add CSS for word wrapping of long message bubbles.
...
llvm-svn: 53492
2008-07-11 23:13:22 +00:00
Chris Lattner
cdf34e7668
Provide a structure for passing down 'is evaluated' and passing up
...
diagnosic+loc info for i-c-e evaluation.
llvm-svn: 53490
2008-07-11 22:52:41 +00:00
Ted Kremenek
dfc7b3d329
Update Xcode project.
...
llvm-svn: 53488
2008-07-11 22:48:58 +00:00
Ted Kremenek
afe2c0be34
Run by default: -check-objc-methodsigs
...
llvm-svn: 53483
2008-07-11 22:41:43 +00:00
Ted Kremenek
3bfb314c25
Add new check: -check-objc-methodsigs. This check scans methods in
...
ObjCImplementationDecls and sees if a ancestor class defines a method with the
same selector but with a different type signature. Right now it just compares
return types, and mainly looks at differences in primitive values. The checking
will be expanded in the future.
llvm-svn: 53482
2008-07-11 22:40:47 +00:00
Chris Lattner
f09ad16cfc
simplify some code a bit.
...
llvm-svn: 53477
2008-07-11 22:15:16 +00:00
Chris Lattner
f8d7f72956
share code between sizeof(expr) and sizeof(type)
...
llvm-svn: 53475
2008-07-11 21:24:13 +00:00
Ted Kremenek
aced3ad4b8
Fix comment.
...
llvm-svn: 53473
2008-07-11 20:53:14 +00:00
Chris Lattner
b062dcc17b
implement support for __extension__, make sure the result of a
...
comparison has the right width.
llvm-svn: 53469
2008-07-11 19:29:32 +00:00
Chris Lattner
ae8cc15977
add a new getIntTypeSizeInBits method.
...
llvm-svn: 53468
2008-07-11 19:24:49 +00:00
Chris Lattner
2bd2e028ca
rename "SInt" methods to "Int" in APValue.
...
llvm-svn: 53467
2008-07-11 19:19:21 +00:00
Ted Kremenek
36f8212299
scan-build now also prints the HTML directory reports were emitted to at the end of the build.
...
llvm-svn: 53466
2008-07-11 19:15:05 +00:00
Chris Lattner
e13042c04f
make the new evaluator avoid conversions APValue<->APSInt in some cases.
...
Add some accessors to APValue.
llvm-svn: 53465
2008-07-11 19:10:17 +00:00
Ted Kremenek
c50e1a196e
Refactored auditor interface within GRExprEngine and GRCoreEngine to use a "batch auditor" to dispatch to specialized auditors instead of having a separate vector for each audited Expr*. This not only provides a much cleaner implementation, but also allows us to install auditors for any expression.
...
llvm-svn: 53464
2008-07-11 18:37:32 +00:00
Chris Lattner
05706e8859
rearrange some code, no functionality changes.
...
llvm-svn: 53463
2008-07-11 18:11:29 +00:00
Ted Kremenek
252d03c598
Patch by Csaba Hruska and Peter Neumark:
...
"adds support (de)serialization (from)to (in memory) buffer."
llvm-svn: 53425
2008-07-10 22:10:48 +00:00
Ted Kremenek
c78ce1840a
Updated Xcode project.
...
llvm-svn: 53424
2008-07-10 22:04:37 +00:00
Ted Kremenek
a7b8ffb05b
Refactored most of the "Store" piece of ValueState into a Store type. The
...
current store implementation is now encapsulated by BasicStore.
These changes prompted some long due constification of ValueState. Much of the
diffs in this patch include adding "const" qualifiers.
llvm-svn: 53423
2008-07-10 22:03:41 +00:00
Ted Kremenek
976d1e0ea8
Remove unused class AnnotatedPath.
...
llvm-svn: 53413
2008-07-10 17:25:03 +00:00
Ted Kremenek
ad4a7e4a69
Move some environment methods from ValueState/ValueStateManager to Environment/EnvironmentManager.
...
llvm-svn: 53412
2008-07-10 17:19:18 +00:00
Chris Lattner
cfba0fade8
Add a new distcc status page, which is currently empty and not
...
linked from anywhere. It will be linked when content is filled in.
Page by Csaba Hruska!
llvm-svn: 53392
2008-07-10 05:32:43 +00:00
Chris Lattner
a580a92508
Add an accessor, patch by Csaba Hruska.
...
llvm-svn: 53391
2008-07-10 05:26:30 +00:00
Argyrios Kyrtzidis
832e898803
Simplify the parser a bit by looking at the next token without consuming it (by Preprocessor::LookNext):
...
-Remove ParseExpressionWithLeadingIdentifier and ParseAssignmentExprWithLeadingIdentifier.
-Separate ParseLabeledStatement from ParseIdentifierStatement.
llvm-svn: 53376
2008-07-09 22:53:07 +00:00
Argyrios Kyrtzidis
80b77ac394
Add Preprocessor::LookNext method, which implements an efficient way to 'take a peek' at the next token without consuming it.
...
llvm-svn: 53375
2008-07-09 22:46:46 +00:00
Ted Kremenek
a3f878dcab
More information on filing bug reports.
...
llvm-svn: 53373
2008-07-09 22:20:56 +00:00
Ted Kremenek
5f996d5a06
Remove getParentMap() from GRExprEngine.
...
llvm-svn: 53343
2008-07-09 19:46:42 +00:00
Ted Kremenek
bf98eed4ef
Updated checker build.
...
llvm-svn: 53339
2008-07-09 18:26:32 +00:00
Ted Kremenek
1aaa6d8c19
Add test case.
...
llvm-svn: 53335
2008-07-09 18:11:43 +00:00
Ted Kremenek
ae529271e8
Fix PR2519: correctly handle CFDictionaryCreate.
...
llvm-svn: 53334
2008-07-09 18:11:16 +00:00
Ted Kremenek
a174c5270f
Extend va_start checking to include __builtin_stdarg_start.
...
llvm-svn: 53332
2008-07-09 17:58:53 +00:00
Chris Lattner
0bf679180c
Codegen support for __builtin_stdarg_start
...
llvm-svn: 53329
2008-07-09 17:28:44 +00:00
Chris Lattner
b218272778
Add parser support for __builtin_stdarg_start, PR2531
...
llvm-svn: 53328
2008-07-09 17:26:36 +00:00
Ted Kremenek
6357f05e19
Add Environment.cpp to the clangAnalysis Visual Studio project.
...
llvm-svn: 53258
2008-07-08 23:30:43 +00:00
Ted Kremenek
263054b5e1
Update Xcode project.
...
llvm-svn: 53257
2008-07-08 23:29:24 +00:00
Ted Kremenek
852ed373aa
Initial work on splitting the ValueState into an Environment, Store, and
...
Constraints. These concepts are already present in the current ValueState, but
the implementation is monolothic. Making ValueState more modular opens up new
design choices for customizing the analysis engine.
In the context of the analysis engine, the "Environment" is the binding between
Expr* (expressions) and intermediate symbolic values (RValues).
llvm-svn: 53252
2008-07-08 21:46:56 +00:00
Ted Kremenek
891c737e39
More info on filing static analysis bug reports.
...
llvm-svn: 53250
2008-07-08 21:25:35 +00:00
Nuno Lopes
e212c3ecc2
revert my bogus attempt to fix the comment. sorry for the noise.
...
llvm-svn: 53248
2008-07-08 21:13:06 +00:00
Anders Carlsson
0166481455
Fix small bug. The evaluator now works well enough to pass all tests
...
llvm-svn: 53238
2008-07-08 16:49:00 +00:00
Anders Carlsson
4a3585b7c0
More constant expression work.
...
llvm-svn: 53235
2008-07-08 15:34:11 +00:00
Anders Carlsson
9c18165448
Move out some methods.
...
llvm-svn: 53234
2008-07-08 14:35:21 +00:00
Anders Carlsson
b5ad021cd7
More work.
...
llvm-svn: 53233
2008-07-08 14:30:00 +00:00
Seo Sanghyeon
1904f44757
Compilation fix
...
llvm-svn: 53222
2008-07-08 07:23:12 +00:00
Anders Carlsson
374b93df76
Port more of Eli's evaluator over. This makes the int evaluator handle binary and unary operators.
...
llvm-svn: 53221
2008-07-08 05:49:43 +00:00
Anders Carlsson
0a1707c6ba
Commit beginnings of int evaluator. Currently not used.
...
llvm-svn: 53219
2008-07-08 05:13:58 +00:00
Anders Carlsson
ba123cdb9c
Add LValue setters for APValue
...
llvm-svn: 53216
2008-07-08 04:35:19 +00:00
Ted Kremenek
8a3cb43fc0
Updated latest checker build.
...
llvm-svn: 53191
2008-07-07 18:43:43 +00:00
Ted Kremenek
79ab0fa913
In a report-XXXXX.html, make the title include the name of the file with the bug. Patch by Jean-Daniel Dupas!
...
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002166.html
llvm-svn: 53184
2008-07-07 18:31:05 +00:00
Ted Kremenek
86b4249c97
Mark the "Bug Type" column as being initially sorted (display the sort ding) so that users can readily see that the table can be sorted.
...
llvm-svn: 53176
2008-07-07 17:23:32 +00:00
Ted Kremenek
9707a93f9d
Output html should have 'class=' before "sorttable_nosort".
...
llvm-svn: 53175
2008-07-07 16:58:44 +00:00
Nuno Lopes
7bfa180056
fix CheckForConstantInitializer() for Compound Literals
...
also fix the correspondent test (it was expecting more errors than it should. please confirm my fix is correct (at least gcc agrees with me)
llvm-svn: 53174
2008-07-07 16:46:50 +00:00
Ted Kremenek
4963d1144f
Updated clients of ImmutableMap::SlimFind to use ImmutableMap::lookup instead.
...
llvm-svn: 53172
2008-07-07 16:21:19 +00:00
Nuno Lopes
d28ccad6fc
add x86 EDI register alias
...
llvm-svn: 53170
2008-07-07 12:18:07 +00:00
Ted Kremenek
37a2c0d5d1
Do not emit a "missing -dealloc" warning if a class contains no ivars that are pointers.
...
This patch aims to address some of the concerns of PR 2517: http://llvm.org/bugs/show_bug.cgi?id=2517
llvm-svn: 53168
2008-07-07 06:36:08 +00:00
Cedric Venet
5e7d92e215
Add new file to VS projects.
...
llvm-svn: 53160
2008-07-06 14:45:13 +00:00
Nuno Lopes
3da38fd145
move the linux predefined macro definition to the TargetInfo, where it really belongs
...
llvm-svn: 53149
2008-07-05 19:32:25 +00:00
Nuno Lopes
9b6de71b7d
predefine the macro linux when compiled on a linux system. this fixes the build of libtidy
...
llvm-svn: 53145
2008-07-05 17:58:44 +00:00
Nuno Lopes
a7c7c6b011
llvm-ld doesnt support -O1, -O2, etc options, so dont pass them
...
llvm-svn: 53144
2008-07-05 17:31:10 +00:00
Nuno Lopes
88b1d0ee42
add gentoo stable gcc headers path so that all tests pass here (CPATH isnt enough..)
...
llvm-svn: 53143
2008-07-05 17:15:18 +00:00
Seo Sanghyeon
d27410b580
Fix warnings
...
llvm-svn: 53141
2008-07-05 02:01:25 +00:00
Argyrios Kyrtzidis
04bfdd555e
Remove unused diagnostic.
...
llvm-svn: 53140
2008-07-04 22:36:24 +00:00
Sanjiv Gupta
1e8b608751
Fixed bugzilla bug# 2489.
...
This was broken when the GenerateCode function was splitted to use GenerateFunction.
llvm-svn: 53136
2008-07-04 11:04:26 +00:00
Argyrios Kyrtzidis
5708a4661e
'&&' commands together so that the test status reflects the results of all the commands, otherwise the test status will be the result of only the last command.
...
llvm-svn: 53135
2008-07-04 10:33:02 +00:00
Seo Sanghyeon
be0e659da4
Fix warnings
...
llvm-svn: 53133
2008-07-04 09:32:15 +00:00
Ted Kremenek
4449ec09d6
'&&' clang commands together so that the test status reflects the results of all three clang executions.
...
llvm-svn: 53132
2008-07-04 04:38:48 +00:00
Ted Kremenek
e83e69e795
Update latest checker build.
...
llvm-svn: 53129
2008-07-03 23:40:44 +00:00
Ted Kremenek
4d85146e6d
Use conjured symbols for variables whose values are invalidated when
...
passed-by-reference to a function. This allows us to build up constraints for
their new values and restore some lost path-sensitivity. This addresses a few
false positives since in Adium.
llvm-svn: 53125
2008-07-03 23:26:32 +00:00
Bill Wendling
e7264ec999
Remove removed header.
...
llvm-svn: 53121
2008-07-03 22:54:30 +00:00
Ted Kremenek
69ba008ea3
Updated latest checker build.
...
llvm-svn: 53118
2008-07-03 22:35:30 +00:00
Ted Kremenek
8044046efb
Fix a bug in the dead stores checker reported in the following email:
...
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002157.html
Essentially the observer mechanism in LiveVariables was observing block-level
expressions multiple times, leading to a case where the dead store checker could
see a value as dead when it was really live.
llvm-svn: 53115
2008-07-03 22:25:27 +00:00
Ted Kremenek
9c75ea62d7
Have ccc-analyzer skip any files with an unknown (or absent) extension.
...
llvm-svn: 53114
2008-07-03 22:24:10 +00:00
Chris Lattner
4cab581bc0
add c++ status to sidebar
...
llvm-svn: 53107
2008-07-03 17:43:22 +00:00
Ted Kremenek
38b1e57a4d
Updated latest checker build.
...
llvm-svn: 53103
2008-07-03 16:26:26 +00:00
Ted Kremenek
68b117fca4
Skip the "-dealloc" check if a ObjC class contains no ivars.
...
llvm-svn: 53100
2008-07-03 15:37:02 +00:00
Ted Kremenek
b23c3aaf7a
Added an "ivar_empty" method to ObjCInterfaceDecl.
...
llvm-svn: 53099
2008-07-03 15:30:49 +00:00
Ted Kremenek
e66ca6f35a
For the -dealloc checker, check the LangOptions to determine whether or not the code is compiled with GC.
...
llvm-svn: 53098
2008-07-03 14:35:01 +00:00
Argyrios Kyrtzidis
5c48a70dad
-Added bool feature.
...
-Set "Named Casts" feature to partial parser/sema support because reinterpret_cast is not properly implemented.
-Removed "Virtual functions" feature because it is already covered by "Class definitions".
-Removed "Templates" because we should either list *all* missing/supported features or just list the features with some support. Mentioning just a few missing features without listing all of them makes little sense.
llvm-svn: 53095
2008-07-03 08:32:59 +00:00
Argyrios Kyrtzidis
f5bfb06b85
-Change slightly the link to cxx_status.html of the home page.
...
-Add a link to cxx_status.html from get_involved.html/"Open Projects".
llvm-svn: 53094
2008-07-03 08:21:51 +00:00
Ted Kremenek
f39614bfd0
Updated latest checker build.
...
llvm-svn: 53084
2008-07-03 05:33:14 +00:00
Ted Kremenek
1d3c797c90
Have BugReporter::getCFG and BugReporter::getLiveVariables returns pointers instead of references, because they can both fail
...
on functions we cannot construct full CFGs for yet.
llvm-svn: 53081
2008-07-03 05:26:14 +00:00
Ted Kremenek
590afde872
Updated latest checker build.
...
llvm-svn: 53080
2008-07-03 04:47:54 +00:00
Ted Kremenek
ff7f2e76bf
Update Xcode project.
...
llvm-svn: 53076
2008-07-03 04:30:48 +00:00
Ted Kremenek
0e7d25233e
Added static analysis check to see if a subclass of NSObject implements -dealloc, and whether or not that implementation calls [super dealloc].
...
llvm-svn: 53075
2008-07-03 04:29:21 +00:00
Anders Carlsson
7a241baf2f
Shuffle things around in preparation for integrating Eli's constant evaluator.
...
llvm-svn: 53074
2008-07-03 04:20:39 +00:00
Anders Carlsson
ac1d1d1c34
Make APValue an APSInt.
...
llvm-svn: 53072
2008-07-03 04:00:59 +00:00
Chris Lattner
3f26dc0bf6
new testcase
...
llvm-svn: 53071
2008-07-03 03:53:40 +00:00
Chris Lattner
1cb0e61e98
Fix PR2252: don't warn on negating an unsigned value ever, and don't emit
...
'integer constant is so large that it is unsigned' warning for hex literals.
llvm-svn: 53070
2008-07-03 03:47:30 +00:00
Chris Lattner
9ff58d7caf
Fix PR2020 by recovering by defining an anonymous enum, instead of recovering
...
by filling in the body of a union with enum constants.
llvm-svn: 53069
2008-07-03 03:30:58 +00:00
Ted Kremenek
80025c257f
Update test case with new clang arguments.
...
llvm-svn: 53056
2008-07-02 23:18:57 +00:00
Ted Kremenek
e6b2fa5029
Update test case: simply running "clang -checker-simple" doesn't invoke the dead store checker anymore. We need "-warn-dead-stores" as well.
...
llvm-svn: 53055
2008-07-02 23:18:22 +00:00
Ted Kremenek
c7efb536d5
Unify the code path for the Dead Stores checker to always use the BugReporter interface.
...
llvm-svn: 53054
2008-07-02 23:16:33 +00:00
Ted Kremenek
f1f17555bd
ccc-analyzer now dispatches the options "-checker-cfref" and "-warn-dead-stores" to clang instead of just "-checker-cfref".
...
llvm-svn: 53053
2008-07-02 23:16:10 +00:00
Ted Kremenek
b1d0118a1a
Refactored some of the BugReporter interface so that data such as the ASTContext&, PathDiagnosticClient*, can be provided by an external source.
...
Split BugReporter into BugReporter and GRBugReporter so checkers not based on GRExprEngine can still use the BugReporter mechanism.
llvm-svn: 53048
2008-07-02 21:24:01 +00:00
Ted Kremenek
125d4a3b2d
GRExprEngine now expects the LiveVariables information to be provided by its creator.
...
This allows an optimization in AnalysisConsumer where the same LiveVariables information is used between multiple analyses.
llvm-svn: 53046
2008-07-02 20:13:38 +00:00
Ted Kremenek
d8ca1f6dd9
Added version of CheckDeadStores that accepts a client-provided LiveVariables object.
...
Modified the DeadStores logic in AnalysisConsumer.cpp to use the LiveVariables object created by the AnalysisManager.
llvm-svn: 53043
2008-07-02 18:39:20 +00:00
Ted Kremenek
c3b30340d9
Added method "HandleTranslationUnit" to ASTConsumer. This is called by ParseAST when all of the ASTs in a translation unit have been built.
...
llvm-svn: 53042
2008-07-02 18:32:45 +00:00
Ted Kremenek
f992cfb4ab
Moved logic for -dump-cfg and -view-cfg into AnalysisConsumer.
...
Renamed -dump-cfg to -cfg-dump, and -view-cfg to -cfg-view. This naming better matches the same options for asts (e.g. -ast-dump).
llvm-svn: 53041
2008-07-02 18:23:21 +00:00
Ted Kremenek
bdbe6130f4
Move -dump-live-variables logic to AnalysisConsumer.
...
llvm-svn: 53039
2008-07-02 18:11:29 +00:00
Ted Kremenek
71ac83246f
Migrate CheckerConsumer diagnostics to the new AnalysisConsumer interface.
...
Remove CheckerConsumer.
llvm-svn: 53029
2008-07-02 16:49:11 +00:00
Ted Kremenek
becec2cbbc
Move logic for "-checker-simple" to the new AnalysisConsumer interface.
...
llvm-svn: 53028
2008-07-02 16:35:50 +00:00
Chris Lattner
5cc931d409
add a description of what sema and parser mean, add C++ style casts.
...
llvm-svn: 53027
2008-07-02 16:28:43 +00:00
Ted Kremenek
494e98d0e5
Fix typo in test case.
...
llvm-svn: 53024
2008-07-02 15:28:06 +00:00
Argyrios Kyrtzidis
1b1a711eb3
Add note that most of C++ is not supported.
...
llvm-svn: 53023
2008-07-02 15:10:46 +00:00
Argyrios Kyrtzidis
c8619b5b15
Set CSS defaults for tables.
...
llvm-svn: 53022
2008-07-02 14:42:28 +00:00
Argyrios Kyrtzidis
fd2012b04d
Drop 'C++' from the features; suggestion by Holger Schurig.
...
llvm-svn: 53020
2008-07-02 14:16:29 +00:00
Argyrios Kyrtzidis
d2082befe5
Fix the page title.
...
llvm-svn: 53017
2008-07-02 13:44:11 +00:00
Gabor Greif
dedda503cb
minor tweaks, escape < and >
...
llvm-svn: 53016
2008-07-02 12:34:47 +00:00
Gabor Greif
a5cb073c5c
add two popular c++ features
...
llvm-svn: 53015
2008-07-02 12:31:13 +00:00
Gabor Greif
731d70b2d6
add c++ status link
...
llvm-svn: 53014
2008-07-02 12:18:17 +00:00
Argyrios Kyrtzidis
ac1c5f925e
Add a C++ status report page.
...
llvm-svn: 53013
2008-07-02 11:38:59 +00:00
Ted Kremenek
410d32bfec
Add DeclCXX.[h.cpp] to clangAST.vcproj
...
llvm-svn: 53004
2008-07-02 00:57:42 +00:00
Ted Kremenek
8e631a0267
Migrated driver logic for running the CF retain/release checker over to the new AnalysisConsumer interface.
...
llvm-svn: 53002
2008-07-02 00:44:58 +00:00
Ted Kremenek
0a7fd7d56c
Added AnalysisConsumer.[cpp,h] to clangDriver.vcproj.
...
Added CXXFieldCollector.h to clangSema.vcproj.
llvm-svn: 52999
2008-07-02 00:16:24 +00:00
Ted Kremenek
e6cc6bb5b3
Updated Xcode project with new files in the Driver: AnalysisConsumer.[h,cpp]
...
llvm-svn: 52997
2008-07-02 00:03:52 +00:00
Ted Kremenek
f0413bfcda
Added AnalysisConsumer, a meta-level ASTConsumer class to drive various
...
analyses. This potentially is the primordial origins of a Clang-equivalent
"PassManager".
The new AnalysisConsumer interface allows multiple analyses to be run from a
single invocation of Clang.
Migrated the logic of "-warn-dead-stores" and "-warn-uninit-values" to use the
new AnalysisConsumer interface. The new interface results in a significant code
reduction to incorporate an analysis into the Driver.
Updated a test case to (correctly) acknowledge that it contains a dead store
(this check wasn't being performed because it was previously masked by
-warn-uninit-values).
llvm-svn: 52996
2008-07-02 00:03:09 +00:00
Ted Kremenek
5f06a935a3
Added reference count checker test case.
...
llvm-svn: 52993
2008-07-01 23:29:51 +00:00
Ted Kremenek
3b5ea90dc1
Updated latest checker build.
...
llvm-svn: 52991
2008-07-01 23:15:51 +00:00
Ted Kremenek
ab54e51b38
Unlike NSWindow objects, NSPanel objects initially do not have self-ownership.
...
llvm-svn: 52963
2008-07-01 17:21:27 +00:00
Argyrios Kyrtzidis
2a40249b65
Update some comments.
...
llvm-svn: 52957
2008-07-01 11:22:40 +00:00
Argyrios Kyrtzidis
ed9834272f
Add Sema support for C++ classes.
...
llvm-svn: 52956
2008-07-01 10:37:29 +00:00
Ted Kremenek
5e08668882
Updated checker build to checker-51
...
llvm-svn: 52949
2008-07-01 01:56:05 +00:00
Ted Kremenek
bc6d850088
Temporarily treat "Autorelease" as "StopTracking". This is the original behavior.
...
llvm-svn: 52940
2008-07-01 00:01:02 +00:00
Chris Lattner
9a8d1d9e56
Make a few related changes:
...
1) add a new ASTContext::getFloatTypeSemantics method.
2) Use it from SemaExpr.cpp, CodeGenTypes.cpp and other places.
3) Change the TargetInfo.h get*Format methods to return their
fltSemantics byref instead of by pointer.
4) Change CodeGenFunction::EmitBuiltinExpr to allow builtins which
sometimes expand specially and othertimes fall back to libm.
5) Add support for __builtin_nan("") to codegen, cases that don't pass
in an empty string are currently lowered to libm calls.
6) Fix codegen of __builtin_infl.
llvm-svn: 52914
2008-06-30 18:32:54 +00:00
Ted Kremenek
51a685cf27
When inspecting the build command, strip off the preceding path to the build command.
...
llvm-svn: 52913
2008-06-30 18:18:16 +00:00
Ted Kremenek
a0e071c861
Added "Autorelease" ArgEffect to better simulate "autorelease" messages. Right
...
now this does the same thing as "MayEscape", but more functionality will go in
here shortly.
llvm-svn: 52904
2008-06-30 16:57:41 +00:00
Ted Kremenek
54dd81ced9
Updated checker build to checker-48
...
llvm-svn: 52902
2008-06-30 16:30:52 +00:00
Ted Kremenek
fec817aa12
Bug fix: when copying prefix files using 'cp', don't split file names by spaces.
...
llvm-svn: 52899
2008-06-30 16:12:30 +00:00
Chris Lattner
d68c04f162
Fix a bug reported by Kelly Wilson, where we incorrectly
...
rejected FP immediates like 08.123
llvm-svn: 52890
2008-06-30 06:44:49 +00:00
Chris Lattner
6016a515e5
refactor some code out into a new method.
...
llvm-svn: 52889
2008-06-30 06:39:54 +00:00
Chris Lattner
a7e619c17b
make type attribute processing static instead of methods on Sema.
...
llvm-svn: 52881
2008-06-29 00:50:08 +00:00
Chris Lattner
b632a6e534
make the rest of the decl attribute processing methods be
...
static functions instead of methods on sema.
llvm-svn: 52880
2008-06-29 00:43:07 +00:00
Chris Lattner
a663a0a1b6
make most of Sema public. Sema is a class private to the Sema library
...
anyway, so there is no real loss here. Start making attribute processing
methods static functions instead of methods on Sema.
llvm-svn: 52879
2008-06-29 00:28:59 +00:00
Chris Lattner
9e2aafea38
move a few methods, no other change.
...
llvm-svn: 52878
2008-06-29 00:23:49 +00:00
Chris Lattner
c4ecec545e
handle type attributes when converting types, not when processing decls.
...
llvm-svn: 52877
2008-06-29 00:19:33 +00:00
Chris Lattner
58418ffa32
Make ProcessDeclAttributes walk the declarator structure pulling
...
decl attributes out of the various places they can hide. This makes
us correctly reject things like this:
t.c:2:22: error: mode attribute only supported for integer and floating-point types
int **__attribute((mode(HI)))* i32;
^
because you can't make a pointer be HImode.
llvm-svn: 52876
2008-06-29 00:16:31 +00:00
Chris Lattner
2727d1b221
move some code from all callers of ProcessDeclAttributes into
...
the implementation of ProcessDeclAttributes.
llvm-svn: 52875
2008-06-29 00:02:00 +00:00
Chris Lattner
a574154106
more attribute refactoring/renaming, no functionality change.
...
llvm-svn: 52874
2008-06-28 23:58:55 +00:00
Chris Lattner
4627b74233
more minor tidiness.
...
llvm-svn: 52873
2008-06-28 23:50:44 +00:00
Chris Lattner
ed9cbbc4f0
more cleanups, refactor HandleVectorTypeAttribute
...
to work list the rest of the attr handlers. Also, rename
it to HandleVectorSizeAttribute to match its attr name.
No functionality change.
llvm-svn: 52872
2008-06-28 23:48:25 +00:00
Chris Lattner
4a927cba2e
adjust the prototypes of a bunch of decl processing methods to take
...
the single attribute they look at by reference instead of by pointer.
This is a subtle indicator that they take the specified attribute, not
a whole list of them.
This also make HandleExtVectorTypeAttribute work the same way as the rest
of the attributes, adds some comments etc. No functionality change.
llvm-svn: 52871
2008-06-28 23:36:30 +00:00
Argyrios Kyrtzidis
f4ebe9ea4f
Handle unnamed bitfields when parsing C++ classes.
...
llvm-svn: 52855
2008-06-28 08:10:48 +00:00
Eli Friedman
4f89ccb1df
Fix for PR2501; this patch makes usual arithmetic conversions for
...
integers which have the same width and different signedness work
correctly. (The testcase in PR2501 uses a comparison between long and
unsigned int).
llvm-svn: 52853
2008-06-28 06:23:08 +00:00
Argyrios Kyrtzidis
853fbea313
Replace CurFunctionDecl and CurMethodDecl with methods getCurFunctionDecl() and getCurMethodDecl() that return the appropriate Decl through CurContext.
...
llvm-svn: 52852
2008-06-28 06:07:14 +00:00
Ted Kremenek
62ea6e8b6a
Updated checker build to checker-47.
...
llvm-svn: 52848
2008-06-28 00:13:07 +00:00
Chris Lattner
e6c693d932
Fix a bug where we didn't promote 'const float' (or typedefs) to
...
double in some places.
llvm-svn: 52846
2008-06-27 22:48:56 +00:00
Chris Lattner
acbc2d200d
the 'mode' attribute is a decl attribute, not a type attribute. Move it to
...
SemaDeclAttr, and do some cleanups.
llvm-svn: 52844
2008-06-27 22:18:37 +00:00
Chris Lattner
0e7c7c9ee1
Nuno points out that my numbers were out of date
...
llvm-svn: 52840
2008-06-27 21:56:03 +00:00
Chris Lattner
d9f8413402
making progress!
...
llvm-svn: 52833
2008-06-27 19:02:23 +00:00
Cedric Venet
3903908794
Add missing include file (due to a file splitting in llvm).
...
Add new file to Sema Project for VS.
this unbreak the build for VS2005 (with the associated patch on llvm).
llvm-svn: 52830
2008-06-27 17:53:02 +00:00
Ted Kremenek
cf1ab19086
Added a simple static analysis check to look for improper uses of CFCreateNumber.
...
llvm-svn: 52799
2008-06-26 23:59:48 +00:00
Chris Lattner
2c6fcf5abb
move decl attribute processing to a new SemaDeclAttr.cpp.
...
llvm-svn: 52792
2008-06-26 18:38:35 +00:00
Ted Kremenek
a4c52a3366
Update Xcode project so that the clang target depends on LLVMAnalysis.a
...
llvm-svn: 52790
2008-06-26 17:53:57 +00:00
Chris Lattner
d1224b2493
clang uses the llvm backend, so define __llvm__ like llvm-gcc.
...
Additionally, define __clang__ so clients can predicate based on
clang features.
llvm-svn: 52788
2008-06-26 17:26:01 +00:00
Cedric Venet
68cbee847e
Another class -> struct in declaration to match definition.
...
llvm-svn: 52782
2008-06-26 12:50:52 +00:00
Matthijs Kooijman
0fb56e50b1
Make clang work on 32 bit powerpc linux.
...
Patch by Nick Lewycky!
llvm-svn: 52777
2008-06-26 08:39:30 +00:00
Matthijs Kooijman
70574af7d8
Link in LLVMAnalysis after LLVMCodeGen, since the latter depends on the former
...
since LLVM r52748.
llvm-svn: 52776
2008-06-26 08:37:29 +00:00
Chris Lattner
cf31de3760
Make Declarator::getDeclSpec() return a const reference to avoid
...
cases where mutation can introduce bugs. Propagate around 'const'.
llvm-svn: 52772
2008-06-26 06:49:43 +00:00
Chris Lattner
3e39fa365d
add a comment about something that was surprising, at least to me.
...
llvm-svn: 52771
2008-06-26 06:39:41 +00:00
Chris Lattner
2239b7d3d2
rename some attr tests for consistency.
...
llvm-svn: 52770
2008-06-26 06:32:02 +00:00
Chris Lattner
4b413ea3bf
fix a bug handling type attributes in the declspec. declspec processing
...
used to mutate the attribute list for declspecs when the type was
converted, breaking the case where one declspec was shared by multiple
declarators.
This fixes rdar://6032532.
llvm-svn: 52769
2008-06-26 06:27:57 +00:00
Chris Lattner
dd7c10227b
another const correctness bug with declspec.
...
llvm-svn: 52768
2008-06-26 06:11:04 +00:00
Chris Lattner
c8846a19d4
fix const correctness of accessor.
...
llvm-svn: 52767
2008-06-26 06:07:52 +00:00
Chris Lattner
bf231a61fd
refactor more objc codegen interfaces to pass around selectors so
...
we don't push strings into LLVM IR and then have to read them back out.
llvm-svn: 52765
2008-06-26 05:08:00 +00:00
Chris Lattner
882034dd99
indenting and other minor things.
...
llvm-svn: 52764
2008-06-26 04:52:29 +00:00
Chris Lattner
da35bc8e53
refactor interface to GenerateClassStructure to avoid converting a
...
string to LLVM IR and then regenerating the string from IR.
llvm-svn: 52762
2008-06-26 04:47:04 +00:00
Chris Lattner
d9b98863c4
remove the old getSelector implementation, which removes some
...
calls to getStringValue
llvm-svn: 52761
2008-06-26 04:44:19 +00:00
Chris Lattner
6cfec78e48
avoid a lot of unneeded selector processing work by passing around
...
selectors instead of Value*'s.
llvm-svn: 52760
2008-06-26 04:42:20 +00:00
Chris Lattner
9a05d04a0d
use cheaper/simpler getselector call for @selector exprs.
...
llvm-svn: 52759
2008-06-26 04:38:58 +00:00
Chris Lattner
6d522c0133
start avoid doing lots of unneeded work handling selectors
...
llvm-svn: 52758
2008-06-26 04:37:12 +00:00
Chris Lattner
42587147d4
improve indentation, avoid thrashing on maps and recalculating strings as much.
...
llvm-svn: 52757
2008-06-26 04:24:57 +00:00
Chris Lattner
87ab27d42f
give CreateObjCRuntime a full CGM so it can get whatever state it needs,
...
instead of passing in just a couple random things it currently
happens to use.
llvm-svn: 52756
2008-06-26 04:19:03 +00:00
Chris Lattner
63dd337fc2
Fix 80 col violations, assert on assumptions.
...
llvm-svn: 52755
2008-06-26 04:10:42 +00:00
Chris Lattner
64d8d074a8
fix this testcase after Mon Ping's intrinsic rename.
...
llvm-svn: 52754
2008-06-26 04:06:27 +00:00
Chris Lattner
d46944d639
a temporary minimal hack to get clang building after the getStringValue changes in llvm mainline.
...
llvm-svn: 52753
2008-06-26 04:05:20 +00:00
Ted Kremenek
f7b72b6940
Updated latest checker build to checker-45.
...
llvm-svn: 52746
2008-06-26 00:04:08 +00:00
Ted Kremenek
3185c9c9cd
CF ref checker:
...
Tracked objects now have their type information tracked with them.
Enhanced summaries for ObjC methods to include the type information of the receiver.
Used the enhanced summaries to support the idiom that NSWindow owns itself (it sends a release message to itself upon close).
Added some comments.
Did some cleanups with the checker logic using operator overloading (reduced redundant code which I was concerned about being the source of bugs).
llvm-svn: 52741
2008-06-25 21:21:56 +00:00
Ted Kremenek
0654d156b0
Add Profile method to QualType.
...
llvm-svn: 52735
2008-06-25 17:24:26 +00:00
Ted Kremenek
c5d1e443ed
Update VS project files.
...
llvm-svn: 52732
2008-06-25 17:14:52 +00:00
Ted Kremenek
c9d1f45210
Update Xcode project.
...
llvm-svn: 52720
2008-06-25 15:15:35 +00:00
Argyrios Kyrtzidis
8a73d1f327
The assert at Sema::ObjCActOnStartOfMethodDef should check CurMethodDecl instead of CurFunctionDecl.
...
llvm-svn: 52719
2008-06-25 14:24:09 +00:00
Argyrios Kyrtzidis
90ba8b6de2
Set CXXClassVar to identifier namespace IDNS_Ordinary.
...
llvm-svn: 52718
2008-06-25 14:04:17 +00:00
Mon P Wang
28898b2888
Updated atomic intrinsic name from llvm r52706. Fixed dropped bit in shufps.
...
llvm-svn: 52707
2008-06-25 08:21:36 +00:00
Argyrios Kyrtzidis
ac1b916441
'Educate' IdentifierResolver about the declaration context of CXXFieldDecls.
...
llvm-svn: 52698
2008-06-24 23:08:34 +00:00
Argyrios Kyrtzidis
1492538fd1
Set CXXMethod to identifier namespace IDNS_Ordinary.
...
llvm-svn: 52697
2008-06-24 22:56:42 +00:00
Argyrios Kyrtzidis
a781452193
The only caller of this knows that the current token is l_brace, so this can be an assert; suggestion by Chris.
...
llvm-svn: 52696
2008-06-24 22:31:41 +00:00
Argyrios Kyrtzidis
7bbb20e338
Add parsing support for C++ classes.
...
Note that Parser::ParseCXXMemberSpecification is temporarily disabled until the Sema support is in place.
Once ParseCXXMemberSpecification is enabled, the Parser/cxx-class.cpp test will pass.
llvm-svn: 52694
2008-06-24 22:12:16 +00:00
Chris Lattner
b1d329da07
"Support for Objective-C message sends which return structures. Also includes a small fix for constant string handling that should have been in the last patch (sorry!) and a hook for generating selectors (rest of this implementation to follow in the next patch)."
...
Patch by David Chisnall!
llvm-svn: 52681
2008-06-24 17:04:18 +00:00
Chris Lattner
6447ed3a1f
"This is a small fix for a bug where static object instances were being incorrectly generated. The bug was caused by my inability to read the GNU libobjc source and is only apparent when JITing code (static compilation does not expose the bug due to the data layout of other globals)."
...
Patch by David Chisnall!
llvm-svn: 52680
2008-06-24 17:01:28 +00:00
Ted Kremenek
17ae57faa8
Update serialization for ObjCMessageExpr to handle additional bit-swizziling of receiver information.
...
llvm-svn: 52679
2008-06-24 17:00:08 +00:00
Ted Kremenek
a3a37ae8c8
ObjCMessageExpr objects that represent messages to class methods now can contain the ObjCInterfaceDecl* of the target class if it was available when the ObjCMessageExpr object was constructed. The original interfaces of the class has been preserved (requiring no functionality changes from clients), but now a "getClasSInfo" method returns both the ObjCInterfaceDecl* and IdentifierInfo* of the target class.
...
llvm-svn: 52676
2008-06-24 15:50:53 +00:00
Argyrios Kyrtzidis
f159b71bdf
Move the namespace action declarations at the "C++ declarations" section.
...
llvm-svn: 52673
2008-06-24 11:23:36 +00:00
Cedric Venet
4bcc95de9b
Test commit: changed the forward declaration of FieldDeclarator from class to struct to be coherent with its definition (DeclSpec.h)
...
llvm-svn: 52671
2008-06-24 09:09:38 +00:00
Ted Kremenek
f8e0bbd6ad
Fix comments: "class method" should be "instance method" and vis versa
...
llvm-svn: 52669
2008-06-24 04:44:10 +00:00
Ted Kremenek
f890bfe0ff
Remove unneeded method arguments.
...
llvm-svn: 52668
2008-06-24 03:56:45 +00:00
Ted Kremenek
b1d1329ac7
Cache ObjC summaries by IdentifierInfo*, not by ObjCInterfaceDecl.
...
llvm-svn: 52667
2008-06-24 03:49:48 +00:00
Ted Kremenek
675a6e6dfa
Patch by Anders Bergh:
...
'There's not much to say about this patch, it just adds the Arch Linux
gcc 4.3.1 header paths for i686 and amd64. The patch was generated
using "svn diff" with clang at revision 52660. The paths aren't
distribution-specific, so they should work for all Linux distributions
using the default(?) names like "i686-pc-linux-gnu".'
llvm-svn: 52665
2008-06-24 03:33:47 +00:00
Ted Kremenek
0cfc16100b
Added ObjCSummaryCache, a new summary cache object to cache summaries for Objective-C methods. Instead of mapping from Selectors -> Summaries, we will now map from (ObjCInterfaceDecl*,Selectors) -> Summaries. This will allow more nuanced summary generation. This patch just swaps in the new data structure; the rest of the code works as before by allowing the ObjCInterfaceDecl* to be null.
...
llvm-svn: 52653
2008-06-23 23:30:29 +00:00
Ted Kremenek
ea736c5d02
Rename summary methods for "instance methods" to "class methods" (the names got screwed up). No functionality change.
...
llvm-svn: 52650
2008-06-23 22:21:20 +00:00
Ted Kremenek
4c9e587db0
Updated latest checker build to checker-44.
...
llvm-svn: 52635
2008-06-23 18:32:25 +00:00
Ted Kremenek
ab4a8b5213
The CF retain/release checker now assumes that allocations do not fail. Eventually we will add a flag to the driver to enable allocation failures (documented as a FIXME).
...
llvm-svn: 52632
2008-06-23 18:02:52 +00:00
Ted Kremenek
75c93eed9a
Update VS project files. Patch by Cedric Venet!
...
llvm-svn: 52625
2008-06-23 16:18:59 +00:00
Chris Lattner
8a6274d745
add a new clang::APValue class at Eli's request. It is a discriminated
...
union between [potentially complex] APInt/APFloat.
llvm-svn: 52609
2008-06-22 05:45:53 +00:00
Chris Lattner
7fa2758b45
add a fixme back
...
llvm-svn: 52607
2008-06-21 22:44:51 +00:00
Chris Lattner
091f698d29
"this patch adds code generation hooks for Objective-C constant strings. It also modifies Sema so that Objective-C constant strings are treated as untyped objects if the interface for the constant string class can not be found. This is consistent with Apple GCC. I thought it was consistent with GNU GCC, since this was causing failures when trying to compile GNUstep with (GNU) GCC, but it appears that this is not the case when attempting to produce a simple test case to demonstrate it. Possibly there is a way of making the error go away, but I haven't found out what it is yet."
...
Patch by David Chisnall!
llvm-svn: 52599
2008-06-21 21:44:18 +00:00
Chris Lattner
0f2b471730
Implement printing for ObjCClassDecl's, patch by Jean-Daniel Dupas!
...
llvm-svn: 52598
2008-06-21 21:40:20 +00:00
Chris Lattner
c4f38851e6
Don't add isa with @defs only to work around it in the code generator, patch
...
by David Chisnall.
llvm-svn: 52597
2008-06-21 21:37:25 +00:00
Chris Lattner
5a92bab4f0
"This moves built-in Objective-C types up the scope chains to where they can be replaced by versions included from the runtime library's headers."
...
This makes it ok to use @"foo" without a declaration for NSConstantString.
Patch by David Chisnall!
llvm-svn: 52593
2008-06-21 20:20:39 +00:00
Chris Lattner
535b830449
add parser and sema support for the funny ObjC '@defs' thing.
...
Patch by David Chisnall!
llvm-svn: 52586
2008-06-21 19:39:06 +00:00
Chris Lattner
5d20a70d01
remove dead enums.
...
llvm-svn: 52581
2008-06-21 18:06:44 +00:00
Chris Lattner
a9b3cae8fd
Switch 'super' from being a weird cast thing to being a predefined expr node.
...
Patch by David Chisnall with objc rewriter and stmtdumper updates from me.
llvm-svn: 52580
2008-06-21 18:04:54 +00:00
Chris Lattner
552b52f49d
"This maps the -pthread option to -lpthread - this isn't 100% correct,
...
since handling this correctly is quite complex, and on some platforms
requires additional -D options and on some implies linking against a
different libc, but this works better than just ignoring the option.
The other change passes the -x option across to clang, which allows
compiling .c files as Objective-C and so on. For some reason a lot of
configure scripts seem to be under the misguided impression that this
is a sensible thing to do."
Patch by David Chisnall!
llvm-svn: 52579
2008-06-21 17:46:11 +00:00
Ted Kremenek
68d2368064
Include stdint.h instead of stdio.h.
...
llvm-svn: 52578
2008-06-21 17:20:55 +00:00
Argyrios Kyrtzidis
e6aff3db25
K&R-style functions not allowed in C++.
...
llvm-svn: 52575
2008-06-21 10:00:56 +00:00
Ted Kremenek
9f9aefdc89
Updated latest static analyzer builder to checker-43.
...
llvm-svn: 52569
2008-06-20 23:22:15 +00:00
Ted Kremenek
22cf89d9cd
Test the dead-store checker using both -warn-dead-stores and -checker-simple.
...
llvm-svn: 52568
2008-06-20 23:14:52 +00:00
Ted Kremenek
c9cea053ba
When using the dead-stores checker with the BugReporter class, properly capture the diagnostic associated with a specific warning and emit it.
...
llvm-svn: 52565
2008-06-20 23:13:39 +00:00
Ted Kremenek
ec93f25a9c
Updated latest checker build.
...
llvm-svn: 52563
2008-06-20 21:56:47 +00:00
Ted Kremenek
c64511152a
Updated call to dead stores to use proper arguments.
...
llvm-svn: 52560
2008-06-20 21:55:29 +00:00
Ted Kremenek
837d967fe8
Updated latest static analyzer build to checker-41.
...
llvm-svn: 52559
2008-06-20 21:54:57 +00:00
Ted Kremenek
b0ead8520c
Updated Xcode project.
...
llvm-svn: 52556
2008-06-20 21:46:17 +00:00
Ted Kremenek
34a691734e
Modified the dead stores checker to...
...
1) Check if a dead store appears as a subexpression. For such cases, we emit
a verbose diagnostic so that users aren't confused. This addresses:
<rdar://problem/5968508> checker gives misleading report for dead store in loop
2) Don't emit a dead store warning when assigning a null value to a pointer.
This is a common form of defensive programming. We may wish to make
this an option to the the checker one day.
This addresses the feature request in the following email:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-June/001978.html
llvm-svn: 52555
2008-06-20 21:45:25 +00:00
Ted Kremenek
99ecdd175d
Added ParentMap, a class to represent a lazily constructed mapping from child to parents.
...
llvm-svn: 52553
2008-06-20 21:40:36 +00:00
Ted Kremenek
d50c7a4b0d
Added "Decl::getCodyBody()", a virtual method that returns the root AST node (Stmt*) that the Decl wraps (if any). Currently this only returns a non-null value for FunctionDecl and ObjCMethodDecl.
...
llvm-svn: 52552
2008-06-20 21:39:47 +00:00
Ted Kremenek
e562289a0f
Updated latest static analysis build.
...
llvm-svn: 52512
2008-06-19 23:20:00 +00:00
Ted Kremenek
940a738e77
Add DTD information.
...
llvm-svn: 52511
2008-06-19 23:14:24 +00:00
Mike Stump
d7667bd8e0
Remove tabs.
...
llvm-svn: 52507
2008-06-19 20:57:50 +00:00
Mike Stump
65643c6480
One more test checkin.
...
Remove an extra space at the end of a line.
llvm-svn: 52504
2008-06-19 19:52:46 +00:00
Mike Stump
01e07653d4
Test commit to see if new account works.
...
I choose to remove extraneous whitespace at end of lines as a semantic
nop for the test.
llvm-svn: 52503
2008-06-19 19:28:49 +00:00
Ted Kremenek
46c82ab994
Introduce initial transfer function support for __imag__ and __real__. We don't
...
have complex RValues yet, so this logic is only fully implemented when __imag__
and __real__ are used on non-complex types.
llvm-svn: 52501
2008-06-19 17:55:38 +00:00
Ted Kremenek
1ce19b9941
Updated static analyzer build to checker-39.
...
llvm-svn: 52446
2008-06-18 05:43:24 +00:00
Ted Kremenek
9a935fbdeb
Added a new ProgramPoint: PostPurgeDeadSymbols. This new program point distinguishes between the cases when we just evaluated the transfer function of a Stmt* (PostStmt) or performed a load (PostLoad). This solves a caching bug observed in a recent bug report.
...
llvm-svn: 52443
2008-06-18 05:34:07 +00:00
Ted Kremenek
e157b265b7
Update website link to latest checker build.
...
llvm-svn: 52429
2008-06-17 19:23:54 +00:00
Ted Kremenek
3802fedfe4
Fix non-termination bug reported by Thomas Clement!
...
llvm-svn: 52426
2008-06-17 19:14:06 +00:00
Chris Lattner
5696e7badf
Change self/_cmd to be instances of ImplicitParamDecl instead of ParmVarDecl.
...
Patch by David Chisnall!
llvm-svn: 52422
2008-06-17 18:05:57 +00:00
Nuno Lopes
a02e2f991b
handle -arch and -isysroot correctly (like ccc-analyszer do).
...
Patch by Filipe Cabecinhas
llvm-svn: 52417
2008-06-17 17:23:14 +00:00
Ted Kremenek
1cc38e71b3
Added link to Developer Meeting.
...
llvm-svn: 52403
2008-06-17 14:02:30 +00:00
Ted Kremenek
bacb584c8b
Flush bullets in <ul>
...
llvm-svn: 52402
2008-06-17 13:55:34 +00:00
Ted Kremenek
77251e9f54
Convert <h4> to <h3>.
...
llvm-svn: 52400
2008-06-17 13:48:36 +00:00
Ted Kremenek
3c02064b05
Tighten <h2> padding.
...
llvm-svn: 52399
2008-06-17 13:48:17 +00:00
Ted Kremenek
473b3fb519
Simplify anchor.
...
llvm-svn: 52398
2008-06-17 13:47:52 +00:00
Ted Kremenek
c07d000356
Remove margin above <h1>.
...
llvm-svn: 52389
2008-06-17 07:05:45 +00:00
Ted Kremenek
deba2fbfa4
Make "important notes" more succinct.
...
llvm-svn: 52388
2008-06-17 06:47:58 +00:00
Ted Kremenek
9eb18aa82b
Include the "latest build" checker link using SSI.
...
llvm-svn: 52387
2008-06-17 06:43:11 +00:00
Ted Kremenek
2d93ec7eca
Split static analysis page into two pages: a high-level information page (with quick download links) and a usage page.
...
llvm-svn: 52386
2008-06-17 06:38:07 +00:00
Ted Kremenek
7d14f86f4a
Tweak font sizes.
...
Color <h3> light blue, <h2> a dark grey.
llvm-svn: 52385
2008-06-17 06:36:13 +00:00
Ted Kremenek
cbcfe6c693
Convert <h2> -> <h3>. <h1> -> <h2> (more consistent with other pages)
...
llvm-svn: 52384
2008-06-17 06:35:36 +00:00
Eli Friedman
fd4c32164c
Make this test actually pass, in addition to the previous patch
...
which made it work.
llvm-svn: 52382
2008-06-17 05:36:46 +00:00
Ted Kremenek
c6501dbc10
Fix more strict-aliasing warnings.
...
Fix indentation of class declarations in ExprCXX.h
llvm-svn: 52380
2008-06-17 03:11:08 +00:00
Ted Kremenek
3dd7724711
Only use colored output when the environment variable SCAN_BUILD_COLOR is set.
...
llvm-svn: 52379
2008-06-17 03:06:59 +00:00
Ted Kremenek
08e171183f
This patch is motivated by numerous strict-aliasing warnings when compiling
...
clang as a Release build.
The big change is that all AST nodes (subclasses of Stmt) whose children are
Expr* store their children as Stmt* or arrays of Stmt*. This is to remove
strict-aliasing warnings when using StmtIterator. None of the interfaces of any
of the classes have changed (except those with arg_iterators, see below), as the
accessor methods introduce the needed casts (via cast<>). While this extra
casting may seem cumbersome, it actually adds some important sanity checks
throughout the codebase, as clients using StmtIterator can potentially overwrite
children that are expected to be Expr* with Stmt* (that aren't Expr*). The casts
provide extra sanity checks that are operational in debug builds to catch
invariant violations such as these.
For classes that have arg_iterators (e.g., CallExpr), the definition of
arg_iterator has been replaced. Instead of it being Expr**, it is an actual
class (called ExprIterator) that wraps a Stmt**, and provides the necessary
operators for iteration. The nice thing about this class is that it also uses
cast<> to type-checking, which introduces extra sanity checks throughout the
codebase that are useful for debugging.
A few of the CodeGen functions that use arg_iterator (especially from
OverloadExpr) have been modified to take begin and end iterators instead of a
base Expr** and the number of arguments. This matches more with the abstraction
of iteration. This still needs to be cleaned up a little bit, as clients expect
that ExprIterator is a RandomAccessIterator (which we may or may not wish to
allow for efficiency of representation).
This is a fairly large patch. It passes the tests (except CodeGen/bitfield.c,
which was already broken) on both a Debug and Release build, but it should
obviously be reviewed.
llvm-svn: 52378
2008-06-17 02:43:46 +00:00
Ted Kremenek
1c77e8f26b
Silence uninitialized value warning in Release build.
...
llvm-svn: 52376
2008-06-16 23:46:27 +00:00
Ted Kremenek
bba87243aa
Silence uninitialized value warning during Release build.
...
llvm-svn: 52375
2008-06-16 23:45:12 +00:00
Ted Kremenek
51ca6fa512
Remove debugging message in ccc-analyzer.
...
Add color diagnostics from scan-build, and indicate the number of bugs found (if any).
llvm-svn: 52372
2008-06-16 22:40:14 +00:00
Ted Kremenek
c9904b61af
Latest release is checker-37.
...
llvm-svn: 52370
2008-06-16 21:46:12 +00:00
Ted Kremenek
c17ec3e27f
Re-enable the analyzer.
...
llvm-svn: 52367
2008-06-16 21:41:07 +00:00
Ted Kremenek
6bed7d6b1e
Remove Analysis-Apple.
...
llvm-svn: 52366
2008-06-16 21:21:48 +00:00
Ted Kremenek
f3c8650502
Move test case "uninit-msg-expr.m" from Analysis-Apple to Analysis (now works on all platforms).
...
llvm-svn: 52362
2008-06-16 21:15:29 +00:00
Ted Kremenek
2eed4d7a25
Moved test case NoReturn.m from Analysis-Apple to Analysis (now works on all platforms).
...
llvm-svn: 52359
2008-06-16 21:05:04 +00:00
Ted Kremenek
bbe6111cc3
Move NSString.m test case from Analysis-Apple to Analysis. The test case now works on all platforms.
...
llvm-svn: 52354
2008-06-16 20:37:30 +00:00
Ted Kremenek
ccafce3d4c
Update test case to use -pedantic (makes the test case more clear).
...
llvm-svn: 52349
2008-06-16 19:53:46 +00:00
Ted Kremenek
5935a17daf
Fix misspelling of "svelte".
...
llvm-svn: 52348
2008-06-16 19:51:41 +00:00
Ted Kremenek
951bc67096
Move Analysis-Apple/CFString.c to Analysis (the test case now works on all platforms).
...
llvm-svn: 52346
2008-06-16 19:35:31 +00:00
Ted Kremenek
107f13971f
Move CFDateGC.m test case from Analysis-Apple to Analysis (it now runs on all platforms).
...
llvm-svn: 52344
2008-06-16 18:46:17 +00:00
Ted Kremenek
7056bb1f21
Moved CFDate.m from test/Analysis-Apple to test/Analysis, and added the necessary declarations from Foundation.h to CFDate.m so that the test case can be exercised on all platforms.
...
llvm-svn: 52343
2008-06-16 18:34:22 +00:00
Ted Kremenek
87c760af36
Add test case for NSString format-string checking.
...
llvm-svn: 52337
2008-06-16 18:01:05 +00:00
Ted Kremenek
34f664d443
Introduce preliminary support for NSString format-string checking.
...
Patch by Nikita Zhuk!
llvm-svn: 52336
2008-06-16 18:00:42 +00:00
Chris Lattner
22b9ff4131
force size of alloca to i32, which is currently required by LLVM IR.
...
This fixes use of alloca on 64-bit systems.
llvm-svn: 52334
2008-06-16 17:15:14 +00:00
Eli Friedman
327944b343
Basic support for volatile loads and stores. Stores the volatile
...
qualifier in the lvalue, and changes lvalue loads/stores to honor
the volatile flag. Places which need some further attention are marked
with FIXMEs.
Patch by Cédric Venet.
llvm-svn: 52264
2008-06-13 23:01:12 +00:00
Ted Kremenek
871fcb57e7
Tweak h1 line-height to avoid text overlay issues in the headers.
...
llvm-svn: 52256
2008-06-13 21:09:07 +00:00
Ted Kremenek
54aba504be
CSS tweaks with the menu to help resolve some menu/content overlap issues.
...
llvm-svn: 52255
2008-06-13 21:06:53 +00:00
Argyrios Kyrtzidis
351008da17
Allow -parse-noop -verify options to be used together.
...
llvm-svn: 52249
2008-06-13 12:15:34 +00:00
Ted Kremenek
b7aa2cc416
Grammo.
...
llvm-svn: 52241
2008-06-12 19:14:13 +00:00
Ted Kremenek
05e2f6006c
Added an "important notes" section. Tweaked formatting.
...
llvm-svn: 52239
2008-06-12 18:39:02 +00:00
Argyrios Kyrtzidis
caec17eab9
Fix broken test.
...
llvm-svn: 52232
2008-06-12 12:44:52 +00:00
Argyrios Kyrtzidis
351763e156
Multiple tests in a single test file must be linked with '&&'.
...
Otherwise, failing tests other than the last one will not be reported.
llvm-svn: 52231
2008-06-12 12:40:02 +00:00
Argyrios Kyrtzidis
de794aadae
Fix "copy & paste" error.
...
llvm-svn: 52227
2008-06-11 23:15:56 +00:00
Ted Kremenek
3715385cf0
Added direct link to latest analyzer build on Mac OS X.
...
llvm-svn: 52222
2008-06-11 16:16:41 +00:00
Ted Kremenek
690f46fd20
Added a disclaimer about running time, and provided an executive summary of the tool's interface.
...
llvm-svn: 52221
2008-06-11 16:09:34 +00:00
Ted Kremenek
9f25c1d219
Use relative links that start with "/" so the menu works from different subdirectories.
...
llvm-svn: 52210
2008-06-11 06:22:05 +00:00
Eli Friedman
61b529f466
Don't crash if we can't find FileEntry info for a typedef, since one
...
isn't guaranteed to exist. This fixes a crash with conflicting typedefs
coming from stdin.
This also fixes the crash in PR2406, but doesn't completely fix the
issue; it appears there's something strange about the physical location
for the definition of int64_t in stdlib.h.
llvm-svn: 52209
2008-06-11 06:20:39 +00:00
Ted Kremenek
d2c8970a9a
Use same CSS as the rest of the clang website.
...
llvm-svn: 52208
2008-06-11 06:19:49 +00:00
Ted Kremenek
1d920583e5
Fix menu/content overlap.
...
llvm-svn: 52207
2008-06-11 06:15:58 +00:00
Ted Kremenek
56847a7249
More padding adjustments.
...
llvm-svn: 52206
2008-06-11 06:14:37 +00:00
Ted Kremenek
7d4955d842
Shorten menu item name.
...
llvm-svn: 52205
2008-06-11 06:13:36 +00:00
Ted Kremenek
9c682c000a
Add some padding to the right of "content" to balance out.
...
llvm-svn: 52204
2008-06-11 06:08:58 +00:00
Ted Kremenek
3ec4889258
Less padding... (difficult to preview without commits)
...
llvm-svn: 52203
2008-06-11 06:08:05 +00:00
Ted Kremenek
a32374a768
More padding...
...
llvm-svn: 52202
2008-06-11 06:07:21 +00:00
Ted Kremenek
909ce26888
Expand padding of content.
...
llvm-svn: 52201
2008-06-11 06:06:43 +00:00
Ted Kremenek
91f223a587
Added static analysis link.
...
llvm-svn: 52200
2008-06-11 06:04:56 +00:00
Ted Kremenek
2a10380f99
Make default text a little darker. Shorten title in Static Analysis page.
...
llvm-svn: 52199
2008-06-11 06:01:28 +00:00
Ted Kremenek
2fc9d272a0
More CSS refinements.
...
llvm-svn: 52198
2008-06-11 05:55:39 +00:00
Ted Kremenek
e368a8cb02
Use Arial as default font.
...
llvm-svn: 52197
2008-06-11 05:32:48 +00:00
Ted Kremenek
39da888759
Use sans-serif font.
...
llvm-svn: 52196
2008-06-11 05:29:48 +00:00
Ted Kremenek
567d28c20d
Included page-specific formatting for tables.
...
llvm-svn: 52195
2008-06-11 05:28:36 +00:00
Ted Kremenek
9b9fe9799c
Include side-menu.
...
llvm-svn: 52194
2008-06-11 05:26:52 +00:00
Ted Kremenek
c2144e73a1
Minor tweaks/grammar/formatting.
...
llvm-svn: 52193
2008-06-11 05:25:12 +00:00
Ted Kremenek
2f7a88ddf6
Skip a few more files and linker options.
...
llvm-svn: 52189
2008-06-10 18:56:59 +00:00
Argyrios Kyrtzidis
34fe86cd9c
Fix the setup of CodeGen/bitfield.c test.
...
Due to the broken setup it was passing the test while it should have failed.
llvm-svn: 52181
2008-06-10 15:48:26 +00:00
Eli Friedman
940a7c0cf8
Fix the run line for this test.
...
llvm-svn: 52169
2008-06-10 05:18:06 +00:00
Eli Friedman
4f64def9ee
Make this test C instead of C++; making it C++ causes a failure on Linux
...
because clang can't parse stdio.h in C++ mode yet.
llvm-svn: 52168
2008-06-10 05:14:31 +00:00
Eli Friedman
d5b11a3adc
Don't include complex.h or tgmath.h for this test; they aren't needed,
...
and including tgmath.h causes the test to fail for no good reason.
llvm-svn: 52167
2008-06-10 05:09:36 +00:00
Eli Friedman
d48188e8e0
Fix getTrueExpr for ConditionalOperator to actually work. No testcase
...
because it's currently unused.
llvm-svn: 52166
2008-06-10 05:00:13 +00:00
Argyrios Kyrtzidis
406fb231f8
-Add DeclChain member to DeclContext.
...
-ScopedDecls get chained to their DeclContext.
-DeclContext's DeclChain replaces FunctionDecl's DeclChain and EnumDecl's ElementList.
llvm-svn: 52164
2008-06-10 01:32:09 +00:00
Argyrios Kyrtzidis
d0c1df4c84
Make CodeGenFunction::EmitDecl() recognise CXXClass/CXXStruct/CXXUnion.
...
llvm-svn: 52162
2008-06-09 23:42:47 +00:00
Argyrios Kyrtzidis
d8cb25ee90
Dump the name of CXXStruct/CXXUnion/CXXClass Decl subclasses.
...
llvm-svn: 52161
2008-06-09 23:36:53 +00:00
Argyrios Kyrtzidis
554a07bab3
-Changes to TagDecl:
...
Added TagKind enum.
Added getTagKind() method.
Added convenience methods: isEnum(), isStruct(), isUnion(), isClass().
-RecordDecl/CXXRecordDecl::Create() accept a TagKind enum instead of a DeclKind one.
llvm-svn: 52160
2008-06-09 23:19:58 +00:00
Argyrios Kyrtzidis
2951e14520
Added new C++ AST Decl subclasses.
...
llvm-svn: 52155
2008-06-09 21:05:31 +00:00
Eli Friedman
8233993fc6
Get -serialize working again, plus a bit of minor cleanup.
...
llvm-svn: 52152
2008-06-09 20:02:51 +00:00
Ted Kremenek
401ef2e426
Added link to Mac OS X builds. Provide instructions for those not using Mac OS X.
...
llvm-svn: 52148
2008-06-09 14:30:01 +00:00
Matthijs Kooijman
9c995757a9
Sprinkle some "-o -" clang options to make the examples work.
...
llvm-svn: 52145
2008-06-09 14:09:10 +00:00
Ted Kremenek
420f7e76c7
Add redirection page.
...
llvm-svn: 52143
2008-06-09 13:38:32 +00:00
Sanjiv Gupta
224e8ea2bb
Generate debug descriptors for array types while generating the debug info.
...
llvm-svn: 52140
2008-06-09 10:47:41 +00:00
Eli Friedman
e6e0f23a29
Add code to make test/CodeGen/struct-init.c work correctly without the
...
pointer cast hack currently in isIntegerConstantExpr
(in lib/AST/Expr.cpp). Also removes an odd test that even gcc doesn't accept.
The reason the pointer cast hack is relevant here is that it makes Sema
end up misinterpreting the relevant expression as a null pointer constant.
The reason for this patch is that I plan to remove the pointer cast hack
sometime soon because it causes strange issues, especially in its
current form; see my recent email to cfe-dev
"[PATCH] add constant expression evaluation to the AST and fix PR2413".
llvm-svn: 52120
2008-06-09 05:05:07 +00:00
Eli Friedman
7567573926
For struct initialization, check compatibility with the unqualified
...
type; this isn't explicitly stated in the standard, but it doesn't
really make sense for them to have an effect here. Fixes the included
testcase, sent to me by Steve Naroff.
llvm-svn: 52113
2008-06-09 03:52:40 +00:00
Chris Lattner
e642fcd689
Since this isn't linked from anywhere yet, I'm taking the opportunity
...
to move it to a more stable URL. If the S-A work grows, this will be
the entrypoint for the pages related to it.
llvm-svn: 52101
2008-06-08 21:55:32 +00:00
Nuno Lopes
b6f7953818
implement the alias attirbute (in both Sema and Codegen)
...
llvm-svn: 52092
2008-06-08 15:45:52 +00:00
Nuno Lopes
cc041ea68e
fix compiler warnings
...
llvm-svn: 52089
2008-06-08 10:16:34 +00:00
Eli Friedman
c98a7add43
Don't crash emitting an initializer for a static local with union type.
...
This fix just makes sure to construct the global with the appropriate
type, and fixes up the one user this affects to compensate.
llvm-svn: 52084
2008-06-08 01:23:18 +00:00
Eli Friedman
69d721e071
Enable the rewriter tests on all platforms; there don't appear to
...
be any regressions from this on my machine, but please let me know if
you run into issues. (The idea here is that it's better to run all
tests on all platforms if at all possible.)
llvm-svn: 52083
2008-06-07 23:20:33 +00:00
Eli Friedman
7e4f41ef3f
Don't include objc.h, so the rewriter tests work on machines without it.
...
llvm-svn: 52082
2008-06-07 23:15:03 +00:00
Chris Lattner
a5678ccd4a
capture whether a CharacterLiteral was wide or not in the AST.
...
Patch by Mike Stump!
llvm-svn: 52081
2008-06-07 22:35:38 +00:00
Chris Lattner
a0173131fa
Fix ast dumping to work with long double literals, e.g. we dump:
...
long double X() { return 1.0L; }
as:
long double X()
(CompoundStmt 0xb06a00 <t.c:2:17, col:32>
(ReturnStmt 0xb068d0 <col:19, col:26>
(FloatingLiteral 0xb02cf0 <col:26> 'long double' 1.000000)))
llvm-svn: 52080
2008-06-07 22:13:43 +00:00
Chris Lattner
82333ccf39
Mark the right ctor explicit, patch by Cédric Venet
...
llvm-svn: 52078
2008-06-07 19:56:57 +00:00
Eli Friedman
3ce7b20590
Fix crash with conversion to an address-space-qualified pointer. Bug
...
reported on cfe-dev by Cédric Venet.
Note that I seriously doubt that this perticular construct is useful,
though: it's a pointer in an alternate address space pointing into
unqualified address space.
llvm-svn: 52076
2008-06-07 17:27:51 +00:00
Eli Friedman
7dbab8a6a1
Fix the line endings in the newly added DeclBase.cpp.
...
llvm-svn: 52075
2008-06-07 16:52:53 +00:00
Eli Friedman
445c73d19f
Fix Visual Studio project files; patch by Cédric Venet.
...
llvm-svn: 52074
2008-06-07 16:34:27 +00:00
Sanjiv Gupta
1929242a94
Create debug type descriptors for aggregate/enum types.
...
llvm-svn: 52070
2008-06-07 04:46:53 +00:00
Ted Kremenek
92611db88f
Use a common SourceManager when processing multiple files. This allows us to cache the contents of source files already loaded from disk.
...
llvm-svn: 52066
2008-06-06 22:42:39 +00:00
Ted Kremenek
af44b83296
Updated Xcode project.
...
llvm-svn: 52065
2008-06-06 21:48:51 +00:00
Ted Kremenek
ef17049bac
Reclaim memory owned by ObjCForwardProtocolDecls.
...
llvm-svn: 52063
2008-06-06 21:05:33 +00:00
Eli Friedman
fd1e32b1f3
Reorganize this loop a bit so it doesn't crash for empty unions. Fixes
...
PR2419.
llvm-svn: 52060
2008-06-06 20:12:37 +00:00
Ted Kremenek
71fff8b4de
Implement "Destroy" and destructor for ObjCClassDecl, allowing us to reclaim its memory and the memory of the Decls it owns.
...
llvm-svn: 52059
2008-06-06 20:11:53 +00:00
Ted Kremenek
2e34af659a
Implement "Destroy" and destructor for ObjCProtocolDecl, allowing us to reclaim its memory and the memory of the Decls it owns.
...
llvm-svn: 52055
2008-06-06 19:48:57 +00:00
Eli Friedman
01321c3b8c
Clean up dead code from SemaInit landing.
...
llvm-svn: 52054
2008-06-06 19:40:52 +00:00
Ted Kremenek
5144fe2287
Because of a lack of a clear ownership role between ObjCInterfaceDecls and
...
ObjCPropertyDecls, have TranslationUnit destroy ObjCPropertyDecls. This is a
horrible hack, and must be removed eventually.
llvm-svn: 52051
2008-06-06 17:21:42 +00:00
Ted Kremenek
09a0d04ea0
Initial work on additional memory collection for ObjC AST objects. We now
...
have Destroy methods of ObjcMethodDecl and ObjCInterfaceDecl which recursively
destroy their owned Decls and Stmts. There are a few cases where it is not
clear what to do (FIXMEs included in the patch).
llvm-svn: 52050
2008-06-06 16:45:15 +00:00
Nuno Lopes
9b07b7b099
implement constant expr. sub ptr ptr
...
llvm-svn: 52049
2008-06-06 16:41:08 +00:00
Devang Patel
8f5645cd51
During interface layout, don't forget super class.
...
llvm-svn: 52035
2008-06-06 02:14:01 +00:00
Devang Patel
e1f10511ba
Undo previous check-in.
...
llvm-svn: 52034
2008-06-06 02:00:35 +00:00
Devang Patel
1216b05d3d
During interface layout, don't forget super class.
...
llvm-svn: 52033
2008-06-06 01:50:12 +00:00
Ted Kremenek
3ad519441f
Fix crash when running with multiple source files. This can be improved.
...
llvm-svn: 52032
2008-06-06 01:47:30 +00:00
Steve Naroff
d32ae8edf2
Oops...remove weird printf:-)
...
llvm-svn: 52025
2008-06-05 22:58:33 +00:00
Steve Naroff
946166f4e9
Second half of "fix" for <rdar://problem/5986085> clang on xcode: error: redefinition of 'XCElementToggler' as different kind of symbol
...
llvm-svn: 52024
2008-06-05 22:57:10 +00:00
Ted Kremenek
dfa8c8aef5
Ignore a few more linker arguments.
...
llvm-svn: 52023
2008-06-05 22:46:24 +00:00
Steve Naroff
a44099f022
super fix submitted by David Chisnall.
...
llvm-svn: 52014
2008-06-05 18:14:25 +00:00
Steve Naroff
31e1d41338
Fixed a recent test regression from last night (r51976).
...
llvm-svn: 52006
2008-06-05 15:03:27 +00:00
Steve Naroff
25449a5221
Fix <rdar://problem/5986833> clang on xcode: incompatible type returning 'void', expected 'int'.
...
- Changed Sema::ObjCActOnStartOfMethodDef() to more accurately type "self" in factory methods.
- Changed Sema::ActOnInstanceMessage() to use the new type to restrict the lookup.
llvm-svn: 52005
2008-06-05 14:49:39 +00:00
Steve Naroff
f9c65246dd
Fix <rdar://problem/5987482> clang on xcode: null dereference in Sema::ActOnMemberReferenceExpr.
...
In addition to fixing the crasher, this commit fixes further improves property lookup (by searching protocols of qualified interfaces..."NSObject <prot>").
llvm-svn: 52001
2008-06-05 13:55:23 +00:00
Sanjiv Gupta
158143ad54
Emit debug information for global and static variables when -g is specified.
...
llvm-svn: 51993
2008-06-05 08:59:10 +00:00
Steve Naroff
d1c3d1130b
Fix trivial crasher and downgrade an error to warning (to match GCC).
...
llvm-svn: 51976
2008-06-05 04:33:44 +00:00
Steve Naroff
cfdf6166fc
Support "<p>" as a short-hand for "id<p>". Here's a comment from GCC (the only documentation I could find on it).
...
/* Make "<SomeProtocol>" equivalent to "id <SomeProtocol>" - nisse@lysator.liu.se . */
This commit adds the parser magic. The type associated with <p> is still incorrect. Will discuss with Chris.
llvm-svn: 51972
2008-06-05 00:02:44 +00:00
Steve Naroff
d5bf26fa26
Fix crash identified by <rdar://problem/5986085>.
...
llvm-svn: 51969
2008-06-04 23:08:38 +00:00
Devang Patel
dbb7263fd9
Add ObjCInterface layout support.
...
Reuse RecordLayout.
llvm-svn: 51968
2008-06-04 21:54:36 +00:00
Steve Naroff
524fbe8687
Update a test and add a FIXME.
...
llvm-svn: 51967
2008-06-04 21:38:52 +00:00
Devang Patel
21979193bb
Refactoring.
...
Move field layout code in a ASTRecordLayout member fn.
llvm-svn: 51966
2008-06-04 21:22:16 +00:00
Ted Kremenek
6da61be501
ccc-analyzer now properly eats the -install_name, -exported_symbols_list, -current_version, -compatibility_version, and -sectorder command line arguments.
...
llvm-svn: 51965
2008-06-04 20:49:03 +00:00
Ted Kremenek
46267c839d
Added fixmes.
...
llvm-svn: 51964
2008-06-04 20:48:08 +00:00
Steve Naroff
d9c2607014
Parser::ParseObjCSynchronizedStmt() needs to Enter/Exit a decl scope.
...
llvm-svn: 51963
2008-06-04 20:36:13 +00:00
Eli Friedman
3e1852fa7e
Make sure the types are consistent for a void conditional. No visible
...
difference, but it's better to be consistent.
llvm-svn: 51961
2008-06-04 19:47:51 +00:00
Eli Friedman
2425cd8158
For setting attributes, don't assume there are ParamVarDecls available,
...
because trying to access non-existent ParamVarDecls can crash.
Testcase from the original source for PR2414.
llvm-svn: 51960
2008-06-04 19:41:28 +00:00
Nuno Lopes
7bd6e58ddc
fix crash when codegening 'cond ? lhs : call-to-void-func()'
...
llvm-svn: 51958
2008-06-04 19:15:45 +00:00
Nuno Lopes
28bcfec325
fix type of ?: operator. If one of the operator is void, the type should be void as well.
...
Please confirm this is safe
llvm-svn: 51957
2008-06-04 19:14:12 +00:00
Fariborz Jahanian
6e59392e4b
Fix a gcc compatibility issue which allows more protocol-qualified id on RHS to be
...
assigned to less protocol qualified object on LHS.
llvm-svn: 51956
2008-06-04 19:00:03 +00:00
Eli Friedman
8547e1d129
Don't assume that the type of a FunctionDecl is a FunctionType; that
...
assumption isn't accurate in the presence of typedefs.
llvm-svn: 51951
2008-06-04 17:58:41 +00:00
Eli Friedman
67b827900e
Make the width and alignment for long double consistent with the
...
hardcoded data layout in getTargetDescription. Hopefully fixes a test
failure.
Of course, this should be fixed properly, but that's a bigger fix.
llvm-svn: 51948
2008-06-04 17:01:45 +00:00
Eli Friedman
c0b54901f4
clang fix to parallel LLVM r51928
...
(http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080602/063306.html ).
llvm-svn: 51944
2008-06-04 16:13:19 +00:00
Ted Kremenek
b147ad1051
Moved LangOptions from TranslationUnit to ASTContext. This induced a variety of cleanups in some ASTConsumers.
...
llvm-svn: 51943
2008-06-04 15:55:15 +00:00
Ted Kremenek
1cb246ef20
Update Xcode project.
...
llvm-svn: 51941
2008-06-04 15:38:06 +00:00
Steve Naroff
c68e382ba9
ASTContext::typesAreCompatible(): id is compatible with all qualified id types.
...
llvm-svn: 51939
2008-06-04 15:07:33 +00:00
Steve Naroff
f4308aac53
Sema::ActOnClassMessage() needs to look through it's local implementation for private class methods.
...
llvm-svn: 51938
2008-06-04 14:43:54 +00:00
Argyrios Kyrtzidis
6301884dc0
Move Decl and DeclContext implementations into a new DeclBase.cpp file.
...
llvm-svn: 51936
2008-06-04 13:04:04 +00:00
Steve Naroff
5ccccf0326
Make sure we look through categories when searching for a classes property.
...
Fixes <rdar://problem/5984338> clang on xcode: property implementation must have its declaration in interface 'PBXOpenQuicklyModule'
llvm-svn: 51925
2008-06-04 04:46:04 +00:00
Steve Naroff
cff2688180
Give the "isa" slot a name!
...
llvm-svn: 51924
2008-06-04 03:03:48 +00:00
Steve Naroff
a2981a2c7b
Add a few more built-in functions.
...
llvm-svn: 51921
2008-06-03 22:16:48 +00:00
Steve Naroff
b115be707d
Put back my temporary hack until Eli addresses this in a more complete fashion.
...
llvm-svn: 51920
2008-06-03 22:06:04 +00:00
Steve Naroff
13c360cec4
Implement another property related FIXME:
...
Fix <rdar://problem/5967199> clang on xcode: error: member reference is not to a structure or union
llvm-svn: 51919
2008-06-03 21:56:14 +00:00
Eli Friedman
149614bfe7
Re-fix r51907 in a way which doesn't affect valid code. This essentially
...
moves the check for the invalid construct to a point where it doesn't
affect other uses of isIntegerConstantExpr, and we can warn properly
when the extension is used. This makes it a bit more complicated, but
it's a lot cleaner.
Steve, please tell me if this check is sufficient to handle the
relevant system header. I know it's enough to handle the testcase, but
I don't know what exactly the original looks like.
llvm-svn: 51918
2008-06-03 21:01:11 +00:00
Steve Naroff
ec62418fc5
Fixup recent "super" regression.
...
llvm-svn: 51913
2008-06-03 18:21:00 +00:00
Steve Naroff
5832c03509
Add a builtin. Fixes <rdar://problem/5982037> clang on xcode: error: incompatible operand types ('int' and 'char *').
...
llvm-svn: 51908
2008-06-03 17:37:43 +00:00
Steve Naroff
aaf5108d26
Change Expr::isIntegerConstantExpr() to allow for pointer types (for GCC compatibility). Note FIXME.
...
Fix <rdar://problem/5977870> clang on xcode: error: arrays with static storage duration must have constant integer length
llvm-svn: 51907
2008-06-03 17:15:29 +00:00
Steve Naroff
b788d9bd27
Allow implicit pointer/int conversions on ObjCQualifiedIdTypes in Sema::CheckCompareOperands() and Sema::CheckAssignmentConstraints().
...
Fixes <rdar://problem/5980804> clang on xcode: error: incompatible type sending 'id<XDUMLType>', expected 'NSCellType'.
llvm-svn: 51902
2008-06-03 14:04:54 +00:00
Steve Naroff
0b225dac9b
Finish up r51900.
...
llvm-svn: 51901
2008-06-03 13:21:30 +00:00
Steve Naroff
1ba306cde5
Allow for a GCC cast extension.
...
Fixes part of <rdar://problem/5980829> clang on xcode: used type 'NSRange' where arithmetic or pointer type is required.
llvm-svn: 51900
2008-06-03 12:56:35 +00:00
Chris Lattner
f4fee9e1e5
make rewrite macros insert a space when commenting out macros where the token didn't
...
lead with a space.
llvm-svn: 51896
2008-06-03 06:10:17 +00:00
Steve Naroff
b877e2c3ca
Fix parser bug/FIXME with @catch .
...
<rdar://problem/5980846> clang on xcode: error: declarator requires an identifier (for @catch )
llvm-svn: 51895
2008-06-03 05:36:54 +00:00
Steve Naroff
ebf4cb4841
Fix <rdar://problem/5979875> clang on xcode: error: use of undeclared identifier 'super'
...
llvm-svn: 51888
2008-06-02 23:03:37 +00:00
Ted Kremenek
88bfb62ffe
Use the correct 'ccc-analyzer' when the build command is a direct invocation of gcc.
...
llvm-svn: 51883
2008-06-02 21:52:47 +00:00
Chris Lattner
fd2fe8270e
handle the full assignment-expression grammar when using an
...
objc message send in an initializer expression.
llvm-svn: 51882
2008-06-02 21:31:07 +00:00
Steve Naroff
f611964230
Fix <rdar://problem/5976164> clang ObjC rewriter: for ... in enumeration inserts undeclared function (objc_enumerationMutation should be in preamble)
...
llvm-svn: 51880
2008-06-02 20:23:21 +00:00
Ted Kremenek
0b6b0e7157
Teach the CF retain checker about "_init" methods. Fixes: <rdar://problem/5956379>
...
llvm-svn: 51872
2008-06-02 17:14:13 +00:00
Ted Kremenek
7ccc9835ef
Use "file_language" for per-language -x options.
...
llvm-svn: 51871
2008-06-02 17:13:40 +00:00
Nuno Lopes
3fe4651e2e
fix decl attributes cleaning
...
this plugs the leak of attributes and also fixes a crash in the test
llvm-svn: 51862
2008-06-01 22:53:53 +00:00
Argyrios Kyrtzidis
28172cb812
Include <string> header to allow compiling for MSVC.
...
llvm-svn: 51847
2008-06-01 21:23:24 +00:00
Nuno Lopes
363212b3fa
fix PR2357 (#ifs didnt invalidate the multiple-inclusion optimization state)
...
llvm-svn: 51843
2008-06-01 18:31:24 +00:00
Eli Friedman
412c66839e
Don't name the ObjC types if there aren't any ObjC objects in the file.
...
Patch by David Chisnall.
llvm-svn: 51840
2008-06-01 16:00:02 +00:00
Eli Friedman
f6b091f73a
First cut at setting attributes for functions and calls; this puts us
...
much closer to passing the gcc struct layout tests.
It might be possible to refactor this a bit, but I'm not sure there's
actually enough common code for that to be useful.
To get the calling convention completely correct, a bit of
platform-specific code is necessary even for x86-Linux. On x86-Linux, the
alignment of function parameters is extremely strange; as far as I can tell,
it's always 4 except for SSE vectors or structs containing SSE vectors. I'm
continuing to investigate this.
llvm-svn: 51839
2008-06-01 15:54:49 +00:00
Eli Friedman
10c2417570
Make sure _Bool globals have the correct type.
...
llvm-svn: 51838
2008-06-01 15:31:44 +00:00
Eli Friedman
149a57f7d4
Minor cleanup to use the ConvertTypeForMem helper.
...
llvm-svn: 51837
2008-06-01 15:16:01 +00:00
Anton Korobeynikov
3b6dd58ee7
Remove spurious == 0
...
llvm-svn: 51836
2008-06-01 15:14:46 +00:00
Anton Korobeynikov
1200aca763
Support for code generation of Objective-C top-level language constructs.
...
Implemented by David Chisnall!
llvm-svn: 51835
2008-06-01 14:13:53 +00:00
Steve Naroff
e643e12313
Tweak Sema::ObjCQualifiedIdTypesAreCompatible() to handle qualified interface types on the RHS.
...
This eliminates a bogus warning identified in the test below.
This fixes <rdar://problem/5968256> clang on xcode: error: incompatible type initializing 'NSObject<XCSelectionSource> *', expected 'id<NSObject,XCSelectionSource>'
llvm-svn: 51832
2008-06-01 02:43:50 +00:00
Steve Naroff
09efde0ae7
Add some more test cases that demonstrate clang is a bit stricter than GCC. These can be fixed lazily if they become a problem.
...
llvm-svn: 51830
2008-05-31 23:10:15 +00:00
Steve Naroff
524011f389
Teach Sema::CheckConditionalOperands() to check for ObjCQualifiedIdType's. This fixes a bogus error.
...
<rdar://problem/5967036> clang on xcode: error: incompatible operand types ('id<DTOutputStreams>' and 'DTFilterOutputStream *')
llvm-svn: 51828
2008-05-31 22:33:45 +00:00
Chris Lattner
d3f3231a07
Two identifiers are not the same unless they have the same identifier info.
...
llvm-svn: 51827
2008-05-31 22:01:01 +00:00
Eli Friedman
252e5f1b29
Calculate alignment for local variables.
...
llvm-svn: 51826
2008-05-31 21:20:41 +00:00
Ted Kremenek
380df93fd6
Added "InitializeTU" to ASTConsumer. This is used by Sema::ParseAST to pass a
...
TranslationUnit object instead of an ASTContext. By default it calls
Initialize(ASTConstext& Context) (to match with the current interface used by
most ASTConsumers).
Modified the ObjC-Rewriter to use InitializeTU, and to tell the TranslationUnit
to not free its Decls. This is a workaround for: <rdar://problem/5966749>
llvm-svn: 51825
2008-05-31 20:11:04 +00:00
Steve Naroff
cd92aebd1f
Fix <rdar://problem/5917992> clang ObjC rewriter: #end from #if statement lost in translation.
...
Some fancy footwork to accommodate embedded preprocessor directives within an interface.
llvm-svn: 51815
2008-05-31 14:15:04 +00:00
Steve Naroff
930e099b90
Fix <rdar://problem/5969777> clang ObjC rewriter: #imported file name mysteriously commented out
...
This fix involved tightening up needToScanForQualifiers(), which predated ObjCQualifiedIdType.
It also includes a minor tweak to the code that searches for the beginning of the qualified type. If the AST contained the correct beginning of the declaration (i.e. the beginning of the declaration specifiers), this code would be more robust. Since it doesn't, we apply an adhoc heuristic. Note that DeclSpec contains this info...we just don't propagate it to the AST (at present).
llvm-svn: 51812
2008-05-31 05:02:17 +00:00
Steve Naroff
a6141f0780
Hack RewriteObjC::RewriteObjCStringLiteral() to include the filename in the generated code (replacing any non-alphanumeric characters with "_"). This allows header files to contain ObjCStringLiterals.
...
llvm-svn: 51811
2008-05-31 03:35:42 +00:00
Steve Naroff
a326bae77a
Fix <rdar://problem/5965704> clang: bad receiver type 'id const'
...
llvm-svn: 51809
2008-05-31 02:19:15 +00:00
Ted Kremenek
a3774667d3
Correctly preserve the order between -F and -I options.
...
llvm-svn: 51803
2008-05-31 00:27:00 +00:00
Steve Naroff
66002283e6
Teach Expr::isLvalue() about ObjC properties. For now, all properties are writable. Added a FIXME for another day.
...
llvm-svn: 51800
2008-05-30 23:23:16 +00:00
Eli Friedman
6859a1b961
PR1893: Fix up the type of tentative definitions of incomplete array
...
types so that they end up the correct size.
llvm-svn: 51787
2008-05-30 20:39:54 +00:00
Eli Friedman
34994cbcbf
Fix and enable generating general union initializers. Essentially, what
...
this does is reconstruct the type for structs and arrays if the type
wouldn't be compatible otherwise.
The assertion about packing in the struct type reconstruction code
sucks, but I don't see any obvious way to fix it. Maybe we need a general
utility method to take a list of types and alignments and try to construct an
unpacked type if possible?
llvm-svn: 51785
2008-05-30 19:58:50 +00:00
Eli Friedman
c18d9d53bb
Allow the type of a global to be different from the type of its
...
associated declaration. This is a prerequisite to handling
general union initializations; for example, an array of unions involving
pointers has to be turned into a struct because the elements can have
incompatible types.
I refactored the code a bit to make it more readable; now, the logic for
definitions is all in EmitGlobalVarInit.
The second parameter for GetAddrOfGlobalVar is now dead; I'll remove it
separately.
By itself, this patch should not cause any visible changes.
llvm-svn: 51783
2008-05-30 19:50:47 +00:00
Eli Friedman
66572afde4
Allow a pointer implicitly cast to a bool as a constant expression, as
...
required by the standard (the standard doesn't know anything about
implicit casts).
Disallow pointers cast to non-integral arithmetic types as constant
expressions. This was previously allowed by accident.
llvm-svn: 51779
2008-05-30 18:14:48 +00:00
Eli Friedman
3360d898ec
Make sure to allow assigning a pointer to a bool.
...
llvm-svn: 51778
2008-05-30 18:07:22 +00:00
Ted Kremenek
6bb6d9f197
Use llvm: 🆑 :desc for description of the -Wimplicit-function-declaration option.
...
Patch by Holger Schurig!
llvm-svn: 51774
2008-05-30 16:42:02 +00:00
Ted Kremenek
8595668eca
Fix some strict-aliasing warnings by using Stmt* instead of Expr* in VariableArrayType, EnumConstantDecl, and VarDecl.
...
llvm-svn: 51772
2008-05-30 16:14:41 +00:00
Eli Friedman
f7fe41656c
Fix constant vector init for initializer lists with an incomplete list
...
of elements.
llvm-svn: 51769
2008-05-30 12:02:14 +00:00
Eli Friedman
35c01c6f2d
Fix crash with -serialize (reported to cfe-dev). The issue was
...
essentially that we were destroying the declarations twice.
(Note that we don't use -serialize directly in the testsuite, only
SerializeTest.)
llvm-svn: 51768
2008-05-30 11:28:30 +00:00
Eli Friedman
617ba48fd5
Always check that the definition of a function has the correct type.
...
This fixes a crash on the included testcase (found in NetHack).
llvm-svn: 51767
2008-05-30 11:13:18 +00:00
Sanjiv Gupta
18de624ca0
Emit parameter and local variable debug information with -g.
...
llvm-svn: 51765
2008-05-30 10:30:31 +00:00
Eli Friedman
711665c309
Add FIXME to CodeGen struct layout.
...
llvm-svn: 51764
2008-05-30 10:29:32 +00:00
Eli Friedman
a2eaffc747
Some additions to constant initializer generation code. Adds
...
bit-field initialization; ugly code, X86-only, but it works, at least
for basic stuff. Separates/adds union initialization; currently disabled,
though, because the struct/array code needs modifications to support
elements of the wrong type.
Fixes PR2381 and PR2309 with the bit-field initialization. And NetHack
compiles and appears to work with a few tweaks (to work around the lack
of transparent_union support, and clang being a bit strict about
conflicting declarations).
llvm-svn: 51763
2008-05-30 10:24:46 +00:00
Eli Friedman
3df5efe83e
Cleanup/refactoring of Sema struct layout. This patch unifies the struct
...
and union codepaths and fixes some minor bugs.
I'm reasonably confident this is accurate, at least for X86. I'll
correct any bugs as I find them; I haven't found any for a while,
though.
llvm-svn: 51762
2008-05-30 09:31:38 +00:00
Steve Naroff
ec94403018
Add basic support for properties references (a missing feature).
...
While it is far from complete, it does fix the following <rdar://problem/5967199> clang on xcode: error: member reference is not to a structure or union
llvm-svn: 51719
2008-05-30 00:40:33 +00:00
Ted Kremenek
5fc6dc070c
Fix one strict-aliasing warning.
...
llvm-svn: 51707
2008-05-29 21:52:26 +00:00
Steve Naroff
021ca18bb5
- Move ObjC Expresssion AST's from Expr.h => ExprObjC.h
...
- #include ExprObjC.h in many places
llvm-svn: 51703
2008-05-29 21:12:08 +00:00
Anton Korobeynikov
e1a9c26b89
Update to follow recent LLVM changes
...
llvm-svn: 51689
2008-05-29 17:42:01 +00:00
Chris Lattner
8c80070de2
Implement support for -w, which silences all warnings. PR2384.
...
llvm-svn: 51683
2008-05-29 15:36:45 +00:00
Eli Friedman
43a6d51494
More complete/correct implementation of the comparison operators for
...
constant expressions.
llvm-svn: 51682
2008-05-29 15:17:49 +00:00
Eli Friedman
3c28524632
Fix an extremely subtle bug with pointer comparisons: they have to be
...
unsigned because it's possible (at least in theory) to have
have both positive and negative pointers pointing to the same object.
llvm-svn: 51681
2008-05-29 15:09:15 +00:00
Eli Friedman
133e8040ca
Rearrange EmitLValueForField a bit to work properly for _Bool bitfields
...
in unions (we don't want to do the union-specific bitcast for
bit-fields).
llvm-svn: 51678
2008-05-29 11:33:25 +00:00
Eli Friedman
045bf4ff82
Add codegen support for a few more kinds of initializer constant
...
expressions.
llvm-svn: 51677
2008-05-29 11:22:45 +00:00
Eli Friedman
174d9c26f1
Add CodeGen support for alignment on globals, both for unusual natural
...
alignment and alignment attributes.
llvm-svn: 51676
2008-05-29 11:10:27 +00:00
Eli Friedman
b65ff27f53
A couple minor fixes to make debug info usable for arbitrary code: don't
...
emit incomplete types, because they crash llc, and always use the
logical location as the current location so we don't crash doing invalid
queries on CurLoc.
llvm-svn: 51675
2008-05-29 11:08:17 +00:00
Eli Friedman
d72a9624a1
Tentative declarations are supposed to have common linkage, not weak.
...
This change makes clang generate the same thing as llvm-gcc.
llvm-svn: 51674
2008-05-29 11:03:17 +00:00
Eli Friedman
5a6d0ede91
Always use packed structs. This isn't really very nice, but there's
...
nothing fundamentally wrong with it. Emitting unpacked structs where
possible is more work for almost no practical benefit. We'll probably
want to fix it at some point anyway, but it's low priority.
The issue with long double in particular is that LLVM thinks an X86 long
double is 10 bytes, while clang considers it for all purposes to be
either 12 or 16 bytes, depending on the platform, even in a packed
struct.
llvm-svn: 51673
2008-05-29 10:58:49 +00:00
Eli Friedman
bb936ce207
Implementation of stdarg.h.
...
llvm-svn: 51672
2008-05-29 10:40:55 +00:00
Chris Lattner
ae2c57fbbe
Fix rewrite rope to keep the leaf list up-to-date as it erases leaves
...
from the rope. rdar://5952468
llvm-svn: 51651
2008-05-28 18:45:56 +00:00
Chris Lattner
34873d2134
give location info to another paren expr.
...
llvm-svn: 51646
2008-05-28 16:38:23 +00:00
Chris Lattner
c5c27f7bfe
add an assertion
...
llvm-svn: 51645
2008-05-28 16:35:02 +00:00
Chris Lattner
a120a521a5
Fix a couple crashes on invalid input.
...
llvm-svn: 51622
2008-05-27 23:32:43 +00:00
Ted Kremenek
ffdbeefc54
When the build command is xcodebuild, set the magical environment variable LDPLUSPLUS to g++ to ensure that C++ object files are linked with g++ instead of gcc.
...
llvm-svn: 51621
2008-05-27 23:18:07 +00:00
Ted Kremenek
f9671ecbfd
Correctly check to see if we are analyzing C++ files (skip).
...
llvm-svn: 51620
2008-05-27 23:17:16 +00:00
Devang Patel
1c56ace4df
Check first member alignment and uses packed struct if required.
...
llvm-svn: 51619
2008-05-27 22:45:40 +00:00
Devang Patel
d608074e09
Fix test case
...
llvm-svn: 51618
2008-05-27 22:44:22 +00:00
Eli Friedman
203cdd5aae
Add the copysign builtins; I ran into a program that wanted
...
__builtin_copysign.
llvm-svn: 51597
2008-05-27 15:59:57 +00:00
Eli Friedman
21911e89d5
A few more cases for aggregate values.
...
llvm-svn: 51596
2008-05-27 15:51:49 +00:00
Eli Friedman
5e2281ede8
Implementation of __builtin_ctlz.
...
llvm-svn: 51595
2008-05-27 15:32:46 +00:00
Eli Friedman
824f8c12fd
Assume statement expressions have side effects; this gets rid of a lot
...
of extra warnings in the Python source.
llvm-svn: 51594
2008-05-27 15:24:04 +00:00
Eli Friedman
70f5a921b7
The cache is working again; re-enable it.
...
llvm-svn: 51587
2008-05-27 08:43:22 +00:00
Eli Friedman
a904087b0d
Get the type right for wide string literals; it's wchar_t, not char.
...
llvm-svn: 51586
2008-05-27 07:57:14 +00:00
Eli Friedman
6f024557ea
Add FIXME.
...
llvm-svn: 51585
2008-05-27 05:09:49 +00:00
Eli Friedman
aee9e54dca
Don't swap function decls, and add them to the scope as they are
...
encountered. Mixing up the decls is unintuitive, and confuses the AST
destruction code. Fixes PR2360.
Note that there is a need to look up the characteristics and
declarations of a function associated with a particular name or decl,
but the original swapping code doesn't solve it properly.
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-May/001644.html is one
suggestion for how to fix that.
llvm-svn: 51584
2008-05-27 05:07:37 +00:00
Eli Friedman
078c963a31
Add a more reliable check for whether a static declaration has already
...
been used. In preparation for the fix to PR2360, but also a minor bug
in its own right.
llvm-svn: 51583
2008-05-27 04:58:01 +00:00
Eli Friedman
ac0285a683
Stop leaking the main Sema object. (Leak found using valgrind.)
...
llvm-svn: 51580
2008-05-27 04:23:47 +00:00
Eli Friedman
3e1d35b92d
Stop leaking the target data. (Leak found with valgrind.)
...
llvm-svn: 51579
2008-05-27 04:22:24 +00:00
Eli Friedman
bdef5df44e
Generalize the float type generation code, and specifically fix the
...
codegen of X86 long double.
llvm-svn: 51578
2008-05-27 04:20:05 +00:00
Eli Friedman
3e113409cb
Implementation of gcc mode attribute; this is significant because
...
it fixes PR2204. Not too much to say about the implementation; it works
in a similar way to the vector size attribute.
At some point, we need to modify the targets to provide information
about the appropriate types.
llvm-svn: 51577
2008-05-27 03:33:27 +00:00
Eli Friedman
42ed07e10e
Rewrite struct/union layout. This is mostly cleanup; this might also fix
...
a few bugs, but I don't know of any in particular. This has good effects
besides cleanup, though: it also should make it easier to implement the
aligned and packed attributes, and also target-specific struct layouts,
because the code won't have to be duplicated in codegen.
llvm-svn: 51576
2008-05-27 03:14:44 +00:00
Eli Friedman
e2bbfe22c7
Stop leaking the TUDecl.
...
llvm-svn: 51575
2008-05-27 03:08:09 +00:00
Eli Friedman
1c2d5f56f8
Change diagnostic per suggestion, to make it a bit clearer what is
...
happening.
llvm-svn: 51574
2008-05-27 02:01:50 +00:00
Eli Friedman
df649f3da5
Emit memmove, not memcpy, for structure copies; this is unfortunately
...
required for correctness in cases of copying a struct to itself or to
an overlapping struct (itself for cases like *a = *a, and overlapping
is possible with unions).
Hopefully, this won't end up being a perf issue; LLVM *should* be able
to optimize memmove to memcpy in a lot of cases, and for small copies
the generated code *should* be mostly comparable. (In reality, LLVM
is currently horrible at optimizing memmove, but that's a bug, not a
fundamental issue.)
gcc currently generates wrong code; that's
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667 .
llvm-svn: 51566
2008-05-26 12:59:39 +00:00
Eli Friedman
292e98cc18
Fix for PR2001. I'm not really fond of it, but it is correct (unless
...
someone tries to make a bitfield volatile?).
Not sure how to write a test; any suggestions?
llvm-svn: 51558
2008-05-25 14:13:57 +00:00
Eli Friedman
0e56c82e4a
Count the number of initializable members correctly in structs/unions
...
with unnamed members.
llvm-svn: 51557
2008-05-25 14:03:31 +00:00
Eli Friedman
e0f832bd4f
Diagnose implicit init list for empty aggregate, like struct {}. Fixes
...
PR2151 (by not creating the empty implicit init list).
llvm-svn: 51556
2008-05-25 13:49:22 +00:00
Eli Friedman
85f5497c4a
Move the error checking for variable-sized objects so we don't
...
double-report errors; fixes PR2362.
llvm-svn: 51555
2008-05-25 13:22:35 +00:00
Eli Friedman
b2bef7c1c2
Make sure to define __sparc__ on Solaris; this should "fix"
...
test/Codegen/mandel.c on Solaris. :-)
llvm-svn: 51554
2008-05-25 05:26:09 +00:00
Sanjiv Gupta
98070578bf
Generate subprogram debug info with -g.
...
Also take care of freeing memory at the right places.
llvm-svn: 51553
2008-05-25 05:15:42 +00:00
Eli Friedman
d042a969c9
Fix this test on non-X86 platforms.
...
llvm-svn: 51552
2008-05-25 04:43:38 +00:00
Eli Friedman
1f97e5798f
Always initialize NEXT_CATCH; fixes a Valgrind uninitialized read error
...
(originally reported in PR1682).
llvm-svn: 51551
2008-05-25 04:34:57 +00:00
Ted Kremenek
e37e612e7a
Fix variable misspelling.
...
llvm-svn: 51548
2008-05-24 16:16:30 +00:00
Ted Kremenek
37d6f58018
Don't use inferlanguage to override the default language for all files.
...
llvm-svn: 51547
2008-05-24 16:14:34 +00:00
Ted Kremenek
55842bd269
Don't analyze .o files.
...
llvm-svn: 51546
2008-05-24 16:09:00 +00:00
Ted Kremenek
f18f460716
Cleanup indentation and remove some dead code.
...
Analyze files not compiled using "-c". This fixes:
<rdar://problem/5961638> invoke checker when gcc is not called with "-c"
llvm-svn: 51545
2008-05-24 15:58:54 +00:00
Ted Kremenek
a08154d85f
Call the correct destructor.
...
llvm-svn: 51544
2008-05-24 15:09:56 +00:00
Steve Naroff
04c3299652
This fixes a VC++ build failure.
...
llvm-svn: 51528
2008-05-24 00:16:40 +00:00
Chris Lattner
10a7bd6341
fix a nasty off-by-one error.
...
llvm-svn: 51519
2008-05-23 23:29:33 +00:00
Chris Lattner
78f37e6d28
add some assertions to catch bad things before they die
...
somewhere deep in rewrite rope.
llvm-svn: 51515
2008-05-23 23:10:58 +00:00
Chris Lattner
17c2476d0b
fix an inconsistency computing offsets that caused a crash on rewrite-nest.m
...
llvm-svn: 51514
2008-05-23 23:06:56 +00:00
Ted Kremenek
567f333f23
Disable the use of PCH files when using xcodebuild.
...
llvm-svn: 51509
2008-05-23 22:18:16 +00:00
Steve Naroff
b3424a9ab6
Minor tweak to -ast-dump for ivars.
...
llvm-svn: 51508
2008-05-23 22:01:24 +00:00
Steve Naroff
59fefb56b1
Fix range info for explicit ivar refs.
...
llvm-svn: 51507
2008-05-23 22:00:37 +00:00
Ted Kremenek
20ccc4c3ed
Revert r51498: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=51498&r1=51497&r2=51498&view=diff
...
Turns out that there are multiple places where a redefinition diagnostic can be emitted. A cleaner solution (without touching Sema) is to have
the Driver turn off these diagnostics. (will submit this patch soon)
llvm-svn: 51502
2008-05-23 21:28:18 +00:00
Steve Naroff
c11802a521
Remove a diagnostic (temporary hack that will be removed next week).
...
llvm-svn: 51498
2008-05-23 20:57:38 +00:00
Chris Lattner
37f5b7d39c
minor changes, collect the range of an expr before rewriting the subexprs
...
no functionality change.
llvm-svn: 51497
2008-05-23 20:40:52 +00:00
Steve Naroff
fd16687b9a
Make sure method definitions get output with -ast-dump.
...
llvm-svn: 51494
2008-05-23 18:50:58 +00:00
Ted Kremenek
a4951b7796
When known, include the analyzer build in the output of scan-build.
...
llvm-svn: 51492
2008-05-23 18:17:05 +00:00
Ted Kremenek
6849601f69
More test cases for retain/release checker. These cases handle not flagging leaks for static variables.
...
llvm-svn: 51486
2008-05-23 17:25:17 +00:00
Gabor Greif
f61cb42ab5
fix typo
...
llvm-svn: 51479
2008-05-23 11:19:39 +00:00
Ted Kremenek
d6795749a6
Unbreak build. Forget to check in this header file change with a previous commit.
...
llvm-svn: 51470
2008-05-23 02:53:24 +00:00
Ted Kremenek
47c96d011e
Fix typo.
...
llvm-svn: 51466
2008-05-23 01:40:41 +00:00
Steve Naroff
e3fa7136b0
Tweak AST dumper for ObjC ivars.
...
llvm-svn: 51463
2008-05-23 00:59:14 +00:00
Ted Kremenek
db622628e8
Additional retain/release checker regression tests.
...
llvm-svn: 51454
2008-05-22 23:46:11 +00:00
Ted Kremenek
b91ef1b62b
Prototyped support in the BugReporter to emit diagnostics of the form "p now aliases q".
...
llvm-svn: 51453
2008-05-22 23:45:19 +00:00
Steve Naroff
4c290c7c0b
Make sure the source location for @property points the the @-sign (not the decl spec).
...
Also added a FIXME related to how we represent @properties in the ObjCInterfaceDecl AST.
llvm-svn: 51450
2008-05-22 23:24:08 +00:00
Dan Gohman
5d30975e5e
Change uses of llvm::Type::isFirstClassType to use the new
...
llvm::Type::isSingleValueType. Currently these two functions have
the same behavior, but soon isFirstClassType will return true for
struct and array types.
Clang may some day want to use of isFirstClassType for some of
these some day as an optimization, but it'll require some
consideration.
llvm-svn: 51446
2008-05-22 22:12:56 +00:00
Ted Kremenek
1df2f3a1f5
Expand retain/release checker to consider methods/function calls that cause a
...
tracked object to "escape": it's reference count might be incremented by the
called function, thus causing an object's lifetime to extend beyond when the
local reference count is decremented to 0.
This addresses: <rdar://problem/5933215>
llvm-svn: 51433
2008-05-22 17:31:13 +00:00
Ted Kremenek
a4010c698c
Don't use ostringstream (pulling in <sstream>) when creating the dead store diagnostic (simply not needed).
...
llvm-svn: 51432
2008-05-22 16:28:24 +00:00
Ted Kremenek
0954b4564e
Update driver include paths to work on darwin10.
...
llvm-svn: 51431
2008-05-22 15:26:22 +00:00
Eli Friedman
bb5de96bc8
Patch for PR2350; the issue was tnat we were allowing (with an error)
...
void f(const void) in one place and rejecting it in another.
llvm-svn: 51424
2008-05-22 08:54:03 +00:00
Eli Friedman
1763075b9c
Make debugging information usable. This is barebones, but it makes -g
...
actually work (instead of crashing llc), and there's enough info emitted
to get line number information in gdb. This should hopefully be helpful
for debugging non-working programs.
I got rid of the begin/endregion calls because the implementation wasn't
working; someone who knows the debugging info a bit better might try to
add it. I really have no clue how a compiler is supposed to emit them.
This commit shouldn't have any effect without -g.
llvm-svn: 51404
2008-05-22 01:40:10 +00:00
Eli Friedman
c7460b1011
Minor refactoring: compute the return value separately from emitting the
...
ret.
llvm-svn: 51403
2008-05-22 01:22:33 +00:00
Eli Friedman
e53d15386f
Make CurFuncDecl more specific; I have some code I'm going to land in a
...
bit that wants to use CurFuncDecl as a FunctionDecl.
llvm-svn: 51402
2008-05-22 01:16:59 +00:00
Dan Gohman
75d69da5ab
Move getAccessedFieldNo out of lib/AST/Expr.cpp into
...
lib/CodeGen/CGExpr.cpp and to change include/clang/AST/Attr.h to
use its own enum for visibility types instead of using
llvm::GlobalValue::VisibilityTypes. These changes eliminate
dependencies in the AST library on LLVM's VMCore library.
llvm-svn: 51398
2008-05-22 00:50:06 +00:00
Ted Kremenek
91f035cda7
Improve dead stores diagnostics to include the variable name.
...
llvm-svn: 51395
2008-05-21 22:59:16 +00:00
Dan Gohman
dac7fe424f
Remove the unneeded #include of VMCore header "llvm/DerivedTypes.h".
...
llvm-svn: 51392
2008-05-21 20:26:42 +00:00
Dan Gohman
1627ae7c48
Explicitly #include Support/Streams.h when using llvm::cout and friends.
...
llvm-svn: 51391
2008-05-21 20:19:16 +00:00
Ted Kremenek
a2157719be
Add Destroy method to Types, making there destruction more harmonious with
...
the destruction of Decls and Stmts.
llvm-svn: 51385
2008-05-21 16:38:54 +00:00
Ted Kremenek
f025a8bc1c
Fix potential double-free.
...
llvm-svn: 51381
2008-05-21 16:00:02 +00:00
Steve Naroff
e181c13593
Fixup ASTContext::PrintStats()...it was causing several test failures.
...
llvm-svn: 51380
2008-05-21 15:59:22 +00:00
Ted Kremenek
512d9412ec
When destroying DeclStmts, also destroy the associated Decl (reclaim its memory).
...
llvm-svn: 51379
2008-05-21 15:53:55 +00:00
Ted Kremenek
b120ff1b95
Fixed bug in the transfer function for dereferences: the loaded value from EvalLoad should bind to the UnaryOperator*, not its subexpression.
...
Added test case to exercise this fix when checking for uses of uninitialized values.
Patch by Zhongxing Xu!
llvm-svn: 51377
2008-05-21 15:48:33 +00:00
Eli Friedman
9a5ffcb14e
Remove an unnecessary/buggy if check. Ran into this with some other
...
changes in my tree, so I don't have a testcase which affects trunk.
llvm-svn: 51371
2008-05-21 13:24:44 +00:00
Eli Friedman
43f6b67135
A small testcase; no patch, since it was a bug in a patch I never
...
committed.
llvm-svn: 51370
2008-05-21 13:21:01 +00:00
Eli Friedman
0ceef458b6
Fix this test so that it's valid; the point is to test for the crash,
...
not the missing diagnostic.
llvm-svn: 51365
2008-05-21 05:37:55 +00:00
Eli Friedman
b158b4a47b
Fix the destruction "properly" in the sense that we actually destroy the
...
ASTs. This is a hack, but I haven't considered how we really
want to do this.
llvm-svn: 51364
2008-05-21 05:33:10 +00:00
Eli Friedman
0883bfb541
PR2347: Fix crash iterating over VLAs; this started triggering because
...
we now iterate over the whole AST when we destroy it.
llvm-svn: 51363
2008-05-21 05:06:46 +00:00
Eli Friedman
14b2993484
Don't kill the declarations if the translation unit doesn't own them
...
(specifically, for TranslationUnits created from SerializationTest.cpp).
Fixes a double-free bug in the serialization tests.
llvm-svn: 51362
2008-05-21 05:01:55 +00:00
Eli Friedman
86346ede95
Fix a couple of bugs found by Neil Booth in the const-ness checking.
...
llvm-svn: 51361
2008-05-21 03:39:11 +00:00
Eli Friedman
bcfa2d75d7
Protect iso646.h from C++ (although I can't imagine why someone would
...
need it...). Patch by Mike Stump.
llvm-svn: 51360
2008-05-21 03:11:31 +00:00
Steve Naroff
52ef6f5231
Add SemaInit.cpp to VC++ proj.
...
llvm-svn: 51330
2008-05-20 20:39:37 +00:00
Nuno Lopes
27f8407406
initialize variable and fix a bunch of test failures
...
llvm-svn: 51326
2008-05-20 18:03:51 +00:00
Nuno Lopes
652eaab03c
fix warning with gcc 4.1 (ptr to bool convertion)
...
llvm-svn: 51324
2008-05-20 17:33:56 +00:00
Eli Friedman
cc6b071c1e
Remove hacks from ASTContext now that alignment gets reported correctly.
...
llvm-svn: 51322
2008-05-20 15:17:39 +00:00
Eli Friedman
7cef49e2d8
Missed an include.
...
llvm-svn: 51321
2008-05-20 14:27:34 +00:00
Eli Friedman
1ca6476ac5
Minor correction for PPC targets.
...
llvm-svn: 51320
2008-05-20 14:25:01 +00:00
Eli Friedman
b53660698a
Some small changes to make the target info a bit more accurate.
...
llvm-svn: 51319
2008-05-20 14:21:01 +00:00