Chris Lattner
6fbf3a07bc
only define MB_LEN_MAX if the system <limits.h> doesn't.
...
don't typecast CHAR_MIN to char, this makes it not a PP constant
and gives it the wrong unpromoted type. Thanks to Sebastian for
pointing this out!
llvm-svn: 63980
2009-02-06 23:29:39 +00:00
Chris Lattner
404c2fb9cc
add a stdint.h header.
...
llvm-svn: 63977
2009-02-06 22:59:47 +00:00
Chris Lattner
0763cc6bfd
Export __INT8_TYPE__ / __INT16_TYPE__ / __INT32_TYPE__ / __INT64_TYPE__
...
in a gcc 4.5 compatible way so that stdint.h can follow the compiler's
notion of types.
llvm-svn: 63976
2009-02-06 22:59:26 +00:00
Douglas Gregor
706a6a9cbf
Clean up an already-fixed FIXME
...
llvm-svn: 63975
2009-02-06 22:58:38 +00:00
Douglas Gregor
cd72ba97e7
Semantic checking for class template declarations and
...
redeclarations. For example, checks that a class template
redeclaration has the same template parameters as previous
declarations.
Detangled class-template checking from ActOnTag, whose logic was
getting rather convoluted because it tried to handle C, C++, and C++
template semantics in one shot.
Made some inroads toward eliminating extraneous "declaration does not
declare anything" errors by adding an "error" type specifier.
llvm-svn: 63973
2009-02-06 22:42:48 +00:00
Ted Kremenek
b586c293c8
Update comment.
...
llvm-svn: 63961
2009-02-06 21:15:34 +00:00
Fariborz Jahanian
6b7cd6e5f4
objc2's nonfragile abi API for messages sent to 'super'.
...
llvm-svn: 63959
2009-02-06 20:09:23 +00:00
Ted Kremenek
6b7ecf6819
Move StringLiteral to allocate its internal string data using the allocator in
...
ASTContext. This required changing all clients to pass in the ASTContext& to the
constructor of StringLiteral. I also changed all allocations of StringLiteral to
use new(ASTContext&).
Along the way, I updated a bunch of new()'s in StmtSerialization.cpp to use the
allocator from ASTContext& (not complete).
llvm-svn: 63958
2009-02-06 19:55:15 +00:00
Ted Kremenek
80954b7dc3
Add sub-testcase where we process Cocoa.h using --disable-free (i.e., test the usage of the BumpPtrAllocator in ASTContext).
...
llvm-svn: 63957
2009-02-06 19:36:35 +00:00
Daniel Dunbar
1a5f04dc66
ccc: Forward -dM to clang.
...
llvm-svn: 63955
2009-02-06 19:26:48 +00:00
Daniel Dunbar
421d40c22b
ccc/Darwin: Add a missing Darwin argument translation, -shared becomes
...
-dynamiclib. Re-audited translations to make sure I didn't miss
something else.
llvm-svn: 63953
2009-02-06 19:18:58 +00:00
Daniel Dunbar
fe2fb0af5a
Use 'compile' instead of 'codegen' when reporting error to user.
...
llvm-svn: 63952
2009-02-06 19:18:03 +00:00
Ted Kremenek
fab16c16a7
Added special versions of new[]/delete[] to complement the new/delete which uses ASTContext's allocator. Updated some comments along the way.
...
llvm-svn: 63949
2009-02-06 19:10:16 +00:00
Chris Lattner
0b0cfbcb62
correct description
...
llvm-svn: 63947
2009-02-06 18:45:59 +00:00
Chris Lattner
1cee17aa5f
first hack at limits.h
...
llvm-svn: 63945
2009-02-06 18:34:27 +00:00
Chris Lattner
a31829b5bc
-funsigned-char sets __CHAR_UNSIGNED__
...
llvm-svn: 63942
2009-02-06 18:20:57 +00:00
Douglas Gregor
8af63e42e3
Diagnose attempts to define a namespace member out-of-line when no
...
matching member exists. Thanks to Piotr Rak for reporting the problem!
llvm-svn: 63939
2009-02-06 17:46:57 +00:00
Zhongxing Xu
4bdb124036
Put the region store specific test in a separate file.
...
llvm-svn: 63930
2009-02-06 08:56:58 +00:00
Zhongxing Xu
e42755334c
SymbolicRegions really have unknown sizes.
...
llvm-svn: 63929
2009-02-06 08:51:30 +00:00
Zhongxing Xu
dec48a50df
Create ElementRegion when the base is SymbolicRegion. This is like what we do
...
for FieldRegion. This enables us to track more values.
Simplify SymbolicRegion::getRValueType(). We assume the symbol always has
pointer type.
llvm-svn: 63928
2009-02-06 08:44:27 +00:00
Chris Lattner
1630c3c4f0
Add an implementation of -dM that follows GCC closely enough to permit
...
diffing the output of:
clang -dM -o - -E -x c foo.c | sort
llvm-svn: 63926
2009-02-06 06:45:26 +00:00
Chris Lattner
5c7cd6043e
add interface for walking macro table.
...
llvm-svn: 63925
2009-02-06 06:26:42 +00:00
Chris Lattner
f302000e5c
add support for -x c++-header, update comment.
...
llvm-svn: 63924
2009-02-06 06:19:20 +00:00
Chris Lattner
fc001b04f8
factor some code out into a helper function.
...
llvm-svn: 63922
2009-02-06 05:56:11 +00:00
Chris Lattner
4c72665bca
file gone.
...
llvm-svn: 63921
2009-02-06 05:18:06 +00:00
Chris Lattner
bba531ce99
get __WCHAR_TYPE__ from the targetinfo hook
...
llvm-svn: 63920
2009-02-06 05:06:07 +00:00
Chris Lattner
a91c30fdb0
simplify and refactor a bunch of type definition code in Preprocessor
...
predefines buffer initialization.
llvm-svn: 63919
2009-02-06 05:04:11 +00:00
Chris Lattner
61898606dc
remove some ad-hocery and use DefineTypeSize for more things.
...
Now you too can have a 47 bit long long!
llvm-svn: 63918
2009-02-06 04:55:18 +00:00
Chris Lattner
a3dc5d8423
refactor some code into a DefineTypeSize function.
...
llvm-svn: 63917
2009-02-06 04:50:25 +00:00
Chris Lattner
fa81669354
default diag::err_pp_file_not_found to mapping to fatal,
...
implementing PR3492: #include failures should be a fatal error
llvm-svn: 63915
2009-02-06 04:16:41 +00:00
Chris Lattner
9e03119446
don't emit any diagnostics after a fatal one.
...
llvm-svn: 63914
2009-02-06 04:16:02 +00:00
Chris Lattner
b05f49e7fd
handle fatal errors, rely on warnings to point out missing cases.
...
llvm-svn: 63913
2009-02-06 03:57:44 +00:00
Ted Kremenek
fe7a9601e9
Use ASTContext's allocator to deallocate Stmt objects instead of using 'delete'. This fixes <rdar://problem/6561143>.
...
llvm-svn: 63905
2009-02-06 01:42:09 +00:00
Daniel Dunbar
ba3325af7b
ccc: Give explicit error on @ style argument lists (not yet supported).
...
llvm-svn: 63903
2009-02-06 01:28:59 +00:00
Daniel Dunbar
724167c280
ccc: Implement special language recognition handling for -.
...
- <rdar://problem/6551577> [ccc] require -x with -
llvm-svn: 63901
2009-02-05 23:44:44 +00:00
Douglas Gregor
eff93e0401
Improve the representation of template type parameters. We now
...
canonicalize by template parameter depth, index, and name, and the
unnamed version of a template parameter serves as the canonical.
TemplateTypeParmDecl no longer needs to inherit from
TemplateParmPosition, since depth and index information is present
within the type.
llvm-svn: 63899
2009-02-05 23:33:38 +00:00
Ted Kremenek
686a09d7b8
Updated checker build.
...
llvm-svn: 63897
2009-02-05 23:19:12 +00:00
Chris Lattner
6be3cd1073
allow mapping errors to fatal.
...
llvm-svn: 63896
2009-02-05 22:56:06 +00:00
Chris Lattner
9d6c4408d1
document fatal
...
llvm-svn: 63895
2009-02-05 22:49:08 +00:00
Chris Lattner
fbe2272fc8
add support to the diagnostics machinery for mapping warnings and
...
errors to 'fatal' error severity.
llvm-svn: 63894
2009-02-05 22:47:05 +00:00
Ted Kremenek
0ca23d3f73
Add 'AppendValue' to the list of magic CF function names that cause a tracked object to escape. Fixes <rdar://problem/6560661>.
...
llvm-svn: 63891
2009-02-05 22:34:53 +00:00
Fariborz Jahanian
33f66e640a
objc2's nonfragile-abi - API selection for when receiver is a class
...
llvm-svn: 63881
2009-02-05 20:41:40 +00:00
Anders Carlsson
31f8649f83
Follow Eli's advice and store the VLA size with the native size_t type. Fixes PR3491.
...
llvm-svn: 63879
2009-02-05 19:43:10 +00:00
Fariborz Jahanian
4f9d349e07
More objc2's API chanes.
...
llvm-svn: 63878
2009-02-05 19:35:43 +00:00
Douglas Gregor
700792c4e4
Improvements and fixes for name lookup with using directives, from Piotr Rak!
...
Also, put Objective-C protocols into their own identifier
namespace. Otherwise, we find protocols when we don't want to in C++
(but not in C).
llvm-svn: 63877
2009-02-05 19:25:20 +00:00
Chris Lattner
df52dc7a6f
I didn't mean to change this.
...
llvm-svn: 63875
2009-02-05 19:05:56 +00:00
Torok Edwin
c6853c1531
Add Debian gcc 4.3 header search directories.
...
llvm-svn: 63872
2009-02-05 18:12:45 +00:00
Fariborz Jahanian
9065541262
#ifdef'out out objc2 API selection which is not done in gcc (unlike
...
the documentation to the contrary).
llvm-svn: 63871
2009-02-05 18:00:27 +00:00
Ted Kremenek
cc41c07227
Update checker build.
...
llvm-svn: 63869
2009-02-05 15:48:51 +00:00
Sebastian Redl
0fb63471de
Fix the symptom of the regression, by having the CXXConditionDeclExpr not destroy its Decl.
...
However, the cause still remains: the Decl is linked into the chain of its DeclContext and remains there despite being deleted.
llvm-svn: 63868
2009-02-05 15:12:41 +00:00
Sebastian Redl
726a0d9524
Put the invalid flag of OwningResult into the Action pointer.
...
This shrinks OwningResult by one pointer. Since it is no longer larger than OwningPtr, merge the two.
This leads to simpler client code and speeds up my benchmark by 2.7%.
For some reason, this exposes a previously hidden bug, causing a regression in SemaCXX/condition.cpp.
llvm-svn: 63867
2009-02-05 15:02:23 +00:00
Sebastian Redl
16d307d8d0
Remove some non-ASCII in comment.
...
llvm-svn: 63866
2009-02-05 12:33:33 +00:00
Daniel Dunbar
3b2dd4368a
Add bare bones test that parameter passing is consistent for
...
scalar/complex/aggregate cases.
- Currently disabled for x86_64, triggering a misoptimization
(PR3489).
llvm-svn: 63864
2009-02-05 11:21:33 +00:00
Daniel Dunbar
5d3dbd64e1
Implement Direct ABIInfo semantics.
...
- No intended functionality change, this is essentially enabling
direct passing of complex and aggregate values, which no ABI is
using.
llvm-svn: 63863
2009-02-05 11:13:54 +00:00
Daniel Dunbar
cea3af4e54
Simplify test for whether we need an alloca to hold an indirect return
...
value.
- No functionality change.
llvm-svn: 63859
2009-02-05 09:24:53 +00:00
Daniel Dunbar
747865af0c
Implement ABI Indirect sematics for arguments.
...
- No intended functionality change, all current ABI implementations
were only using indirect for complex/aggregate types, which were
being passed indirectly with the Direct ABIInfo kind.
llvm-svn: 63858
2009-02-05 09:16:39 +00:00
Daniel Dunbar
b8b1c679c4
Merge ABIInfo StructRet/ByVal into Indirect.
...
- No (intended) functionality change, the semantic changes are to come.
llvm-svn: 63850
2009-02-05 08:00:50 +00:00
Chris Lattner
d0a79b2eb8
make clang agree with gcc 4.2's x86-64 predefines and settings.
...
llvm-svn: 63849
2009-02-05 07:32:46 +00:00
Chris Lattner
fafd8d1be9
correct and generalize computation of __INTMAX_MAX__.
...
llvm-svn: 63848
2009-02-05 07:27:41 +00:00
Chris Lattner
6e5ca6bff9
privatize some stuff.
...
llvm-svn: 63847
2009-02-05 07:27:29 +00:00
Chris Lattner
8181312251
fix some differences between apple gcc and clang on darwin/x86-32.
...
llvm-svn: 63846
2009-02-05 07:19:24 +00:00
Daniel Dunbar
c79407fc40
Pull CodeGenFunction::GetUndefRValue() out of EmitUnsupportedRValue.
...
llvm-svn: 63845
2009-02-05 07:09:07 +00:00
Zhongxing Xu
9103df1688
Make SymbolicRegion subclass TypedRegion, for symbols usually have types, so
...
do the symblic regions associated with them and we need them to be typed.
Current SymbolicRegion::getRValueType() method is very restricting. It may be
modified when we are more clear about what could be the types of symblic
regions.
BasicConstraintManager::Assume() is changed due to that now SymblicRegion is a
subclass of SubRegion.
llvm-svn: 63844
2009-02-05 06:57:29 +00:00
Ted Kremenek
400aae7fa4
Remove a bunch of obscene double-buffering of BugReports in the retain/release
...
checker. This was previously needed because BugReport objects were previously
allocated on the stack and not owned by BugReporter. Now we can just issue them
on the fly. This change was motivated because we were seeing some weird cases
where some really long paths would get issued for bugs (particularly leaks)
because of some double-caching.
llvm-svn: 63840
2009-02-05 06:50:21 +00:00
Daniel Dunbar
e7dffe39ff
ccc: Translate -O to -O1 for clang, and only pass last -O option.
...
llvm-svn: 63816
2009-02-05 02:43:38 +00:00
Dale Johannesen
621c3512a3
Reapply Daniel's patch to match up with llvm 63765.
...
Untested, Daniel or Nate please review.
llvm-svn: 63814
2009-02-05 01:50:47 +00:00
Daniel Dunbar
70245be397
x86-32: Use Ignore to avoid passing empty structs (instead of Expand).
...
llvm-svn: 63813
2009-02-05 01:50:07 +00:00
Daniel Dunbar
0103574d55
Honor ByVal alignment. Patch by Nate Begeman!
...
llvm-svn: 63811
2009-02-05 01:31:19 +00:00
Fariborz Jahanian
4e87c834d3
This patch generates messaging code for objc2's non-fragile abi.
...
llvm-svn: 63810
2009-02-05 01:13:09 +00:00
Daniel Dunbar
8045343ca2
Initialize alignment field for ByVal ABIInfo correctly.
...
llvm-svn: 63809
2009-02-05 01:01:30 +00:00
Ted Kremenek
fb379b2660
Fix regression: Leak (BugType) object should have 'isLeak()' return true.
...
llvm-svn: 63803
2009-02-05 00:38:00 +00:00
Daniel Dunbar
fff09f335d
Unbreak CGFunctionInfo::Profile method and reenable caching of ABI
...
information.
llvm-svn: 63799
2009-02-05 00:00:23 +00:00
Ted Kremenek
fc5d067ea0
Overhaul BugReporter interface and implementation. The new interface cleans up
...
the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes,
and BugTypes are owned by the BugReporter object.
The major functionality change in this patch is that reports are not immediately
emitted by a call to BugReporter::EmitWarning (now called EmitReport), but
instead of queued up in report "equivalence classes". When
BugReporter::FlushReports() is called, it emits one diagnostic per report
equivalence class. This provides a nice cleanup with the caching of reports as
well as enables the BugReporter engine to select the "best" path for reporting a
path-sensitive bug based on all the locations in the ExplodedGraph that the same
bug could occur.
Along with this patch, Leaks are now coalesced into a common equivalence class
by their allocation site, and the "summary" diagnostic for leaks now reports the
allocation site as the location of the bug (this may later be augmented to also
provide an example location where the leak occurs).
llvm-svn: 63796
2009-02-04 23:49:09 +00:00
Daniel Dunbar
400c040e01
Chase LLVM TOT in circles (i.e., revert r63773 to match revert of
...
r63765).
llvm-svn: 63795
2009-02-04 23:40:00 +00:00
Daniel Dunbar
56e7552c73
Add ABIArgInfo::dump()
...
llvm-svn: 63794
2009-02-04 23:24:38 +00:00
Douglas Gregor
fc4f8a1834
Implement semantic analysis for the GNU flexible array initialization
...
extension. The interaction with designated initializers is a
bit... interesting... but we follow GNU's lead and don't permit too
much crazy code in this area.
Also, make the "excess initializers" error message a bit more
informative.
Addresses PR2561: http://llvm.org/bugs/show_bug.cgi?id=2561
llvm-svn: 63785
2009-02-04 22:46:25 +00:00
Mike Stump
82f071faa7
Add support for blocks with explicit return types.
...
llvm-svn: 63784
2009-02-04 22:31:32 +00:00
Daniel Dunbar
46353ece18
Use correct signature for calling enumeration mutation function.
...
llvm-svn: 63782
2009-02-04 22:00:33 +00:00
Daniel Dunbar
fb5fdf1f14
Temporarily disable caching of ABI results; this is going horribly
...
wrong in some cases.
llvm-svn: 63780
2009-02-04 21:36:22 +00:00
Sebastian Redl
18f8ff62a3
Implement taking address of member functions, including overloaded ones.
...
llvm-svn: 63779
2009-02-04 21:23:32 +00:00
Daniel Dunbar
ed9309ef46
ccc: Forward -femit-all-decls to clang and use an option group to
...
simplify handling of -f options clang recognizes.
llvm-svn: 63778
2009-02-04 21:21:08 +00:00
Daniel Dunbar
fa803cd260
Test case for -femit-all-decls.
...
llvm-svn: 63777
2009-02-04 21:20:25 +00:00
Daniel Dunbar
1e8052b36d
Add -femit-all-decls codegen option.
...
- Emits all declarations, even unused (static) ones.
- Useful when doing minimization of codegen problems (otherwise
problems localized to a static function aren't minimized well).
llvm-svn: 63776
2009-02-04 21:19:06 +00:00
Daniel Dunbar
a45bdbbb6a
Add asserts that the function signature matches the other arguments provide
...
to CGCall functions.
llvm-svn: 63775
2009-02-04 21:17:21 +00:00
Daniel Dunbar
91b73d441e
(llvm up) Update for intrinsic lookup changes.
...
llvm-svn: 63773
2009-02-04 21:09:15 +00:00
Fariborz Jahanian
e4dc35deb9
Some early code for objc2's nonfragile abi messaging.
...
llvm-svn: 63770
2009-02-04 20:42:28 +00:00
Fariborz Jahanian
b73a23e47e
Patch fixes messaging for GNU runtime.
...
Patch by David Chisnall
llvm-svn: 63769
2009-02-04 20:31:19 +00:00
Chris Lattner
2e731e369c
smaller header.
...
llvm-svn: 63766
2009-02-04 19:47:38 +00:00
Chris Lattner
022923a22a
Fix PR3464 by searching for headers from the predefines
...
buffer as if the #include happened from the main file.
llvm-svn: 63764
2009-02-04 19:45:07 +00:00
Chris Lattner
7ead0396f6
Ok, we need a system header for this test to pass in the clang/test directory as well as from the pp directory.
...
llvm-svn: 63763
2009-02-04 19:44:14 +00:00
Chris Lattner
988dff84f1
fix test
...
llvm-svn: 63762
2009-02-04 19:40:02 +00:00
Chris Lattner
2f7bb79c86
rename again
...
llvm-svn: 63761
2009-02-04 19:38:30 +00:00
Chris Lattner
4a82a24108
rename some tests
...
llvm-svn: 63759
2009-02-04 19:38:12 +00:00
Chris Lattner
3b04af73f1
include smaller header for test.
...
llvm-svn: 63758
2009-02-04 19:37:49 +00:00
Chris Lattner
29321443f6
add DeclTemplate.h/cpp
...
llvm-svn: 63757
2009-02-04 19:21:34 +00:00
Douglas Gregor
ec6e1893d7
Improve documentation for Sema::getTypeName. Also, it's return type is
...
DeclTy*, not TypeTy*.
llvm-svn: 63756
2009-02-04 19:16:12 +00:00
Douglas Gregor
4ab311dc30
Note the Radar number that corresponds to PR3137
...
llvm-svn: 63754
2009-02-04 19:10:27 +00:00
Ted Kremenek
77de9885f8
Update checker build.
...
llvm-svn: 63753
2009-02-04 19:09:38 +00:00
Douglas Gregor
ded2d7b021
Basic representation of C++ class templates, from Andrew Sutton.
...
llvm-svn: 63750
2009-02-04 19:02:06 +00:00
Eli Friedman
cddff7fd62
Test for PR3137.
...
llvm-svn: 63749
2009-02-04 18:50:00 +00:00