Rafael Espindola
7787d79c7b
Add the -nostdclanginc option to clang (the driver).
...
llvm-svn: 83377
2009-10-06 12:45:37 +00:00
Ted Kremenek
d5cf21a57b
Fix 'clang-cc -analyzer-display-progress' by flushing standard error after printing the name of the analyzed function.
...
llvm-svn: 83369
2009-10-06 03:49:25 +00:00
Ted Kremenek
2f935535b1
Fix crash introduced by r83358 where a symbol could be eagerly
...
evaluated to an APSInt with a different bitwidth than the other
operand in a binary expression.
llvm-svn: 83368
2009-10-06 03:44:49 +00:00
Ted Kremenek
8ec5771dcb
Fix: <rdar://problem/7275774> Static analyzer warns about NULL pointer when
...
adding assert
This fix required a few changes:
SimpleSValuator:
- Eagerly replace a symbolic value with its constant value in EvalBinOpNN
when it is constrained to a constant. This allows us to better constant fold
values along a path.
- Handle trivial case of '<', '>' comparison of pointers when the two pointers
are exactly the same.
RegionStoreManager:
llvm-svn: 83358
2009-10-06 01:39:48 +00:00
Rafael Espindola
c3031a9643
Refactor the c++ include path a bit.
...
llvm-svn: 83357
2009-10-06 01:33:02 +00:00
Devang Patel
faf7e9ad24
Set appropriate context for a global variable while emitting debug info.
...
llvm-svn: 83352
2009-10-06 00:35:31 +00:00
Fariborz Jahanian
333bb733a5
Refixed pr5086 by letting Expr::isNullPointerConstant
...
handle checking for a null pointer for a zero-valued
enumerator; moving the test case from CodeGen to Sema.
llvm-svn: 83350
2009-10-06 00:09:31 +00:00
Mike Stump
4348c565ad
This is slightly contentious, but, if llvm has gone to addressable
...
units, we should as well. The problem is the non-predictability of
the dimension of the values. I'd love for the dimension to be part of
the static type system... but in C++ it is kinda annoying to do.
llvm-svn: 83345
2009-10-05 23:40:59 +00:00
Mike Stump
916c006735
Fix thinko and simplify.
...
llvm-svn: 83342
2009-10-05 23:08:21 +00:00
Mike Stump
3472ae5bac
Ensure we have atleast 2-byte alignment for member functions.
...
llvm-svn: 83337
2009-10-05 22:49:20 +00:00
Douglas Gregor
084a654334
Make sure that c-index-test links as a C++ executable
...
llvm-svn: 83335
2009-10-05 22:29:42 +00:00
Douglas Gregor
629f4811a0
Make sure that libCIndex links as a C++ library
...
llvm-svn: 83331
2009-10-05 22:25:29 +00:00
Mike Stump
f6ab1f0a4d
Testcase for recent checkin.
...
llvm-svn: 83330
2009-10-05 22:24:47 +00:00
Mike Stump
c5e153c50e
Respect alignments better.
...
llvm-svn: 83328
2009-10-05 21:58:44 +00:00
Eric Christopher
c2ac4f020b
Fix C90 compile warning about mixed declarations and code.
...
llvm-svn: 83327
2009-10-05 21:33:42 +00:00
Fariborz Jahanian
8764c74784
tweaked my last patch to 1) preserve the protocol in
...
extension class's protocol list so its AST is complete.
2) Because of this no need to issue warning on unimplemeted
methods coming from the extended class protocols
because warning is issued when class definition is seen.
llvm-svn: 83326
2009-10-05 21:32:49 +00:00
Chris Lattner
78a2e6356b
remove this test, grepping for define isn't really testing anything.
...
llvm-svn: 83325
2009-10-05 21:16:22 +00:00
Douglas Gregor
d54f3a1e58
Encode the Clang branch and Subversion revision into a PCH file, and
...
assume that PCH files from different Clang revisions are not
compatible. Addresses <rdar://problem/7266572>.
llvm-svn: 83323
2009-10-05 21:07:28 +00:00
Fariborz Jahanian
092cd6e624
Patch to implement Protocols on class extensions.
...
<rdar://problem/7269631> Protocols on class extensions don't work
llvm-svn: 83322
2009-10-05 20:41:32 +00:00
Douglas Gregor
1b7035da6f
Provide a common set of routines in Version.h that return Subversion
...
branch/revision information. Use that information in the driver,
rather than one-off branch/revision computation.
llvm-svn: 83321
2009-10-05 20:33:49 +00:00
Douglas Gregor
7550a6c186
Pre-commit commit to get URL keyword expansion for Clang version information
...
llvm-svn: 83319
2009-10-05 18:52:24 +00:00
Steve Naroff
d7eb7179a2
- Fix assert in clang_getCursorDecl (having to do with recently added ObjC_ProtocolRef).
...
- Make sure CHECK: lines in test case match the expected output.
llvm-svn: 83316
2009-10-05 17:58:19 +00:00
Benjamin Kramer
dde0fee82e
Use new predicates for some type equality tests.
...
llvm-svn: 83303
2009-10-05 13:47:21 +00:00
Rafael Espindola
e7178953f9
Add a -nostdclanginc flag to clang-cc that prevents it from searching
...
its own binary-relative headers. Useful when using clang's preprocessor
with gcc.
llvm-svn: 83302
2009-10-05 13:12:17 +00:00
Anders Carlsson
d5931cd2b7
Pass the canonical method decl to GetVtableIndex. Fixes PR5120.
...
llvm-svn: 83272
2009-10-03 19:56:56 +00:00
Anders Carlsson
2ee3c011d9
Implement code generation of member function pointer calls. Fixes PR5121.
...
llvm-svn: 83271
2009-10-03 19:43:08 +00:00
Anders Carlsson
61914b512a
Create CXXMemberCallExpr for pointer-to-member calls.
...
llvm-svn: 83268
2009-10-03 17:40:22 +00:00
Anders Carlsson
de55f647ff
Ignore No-op casts when evaluating lvalue expressions. Fixes PR5122.
...
llvm-svn: 83267
2009-10-03 16:30:22 +00:00
Anders Carlsson
c46bf276e1
Teach AggExprEmitter about pointers to member functions.
...
llvm-svn: 83266
2009-10-03 15:43:24 +00:00
Anders Carlsson
3162e4945a
Handle base-to-derived casts of member function pointers in CGExprConstant.cpp
...
llvm-svn: 83265
2009-10-03 15:13:22 +00:00
Anders Carlsson
128a5d5147
Handle members to function pointers in CGExprConstant.
...
llvm-svn: 83264
2009-10-03 15:02:02 +00:00
Anders Carlsson
32bfb1ce8f
Move some functions from CodeGenFunctions to CodeGenModule so they can be used by CGExprConstant.
...
llvm-svn: 83263
2009-10-03 14:56:57 +00:00
Anders Carlsson
6ad01742d5
Rewrite member function pointer test not to rely on -O2.
...
llvm-svn: 83262
2009-10-03 14:39:13 +00:00
Benjamin Kramer
d8e06611eb
Fix typo.
...
llvm-svn: 83246
2009-10-02 12:19:16 +00:00
Benjamin Kramer
80401b96c2
FileCheckize test case.
...
llvm-svn: 83244
2009-10-02 10:32:51 +00:00
Anders Carlsson
8a744ad8a6
Don't update the struct alignment when adding fields to a packed struct. Fixes PR5118.
...
llvm-svn: 83235
2009-10-02 04:52:12 +00:00
Mike Stump
581b9ad124
More magic pixie dust.
...
llvm-svn: 83232
2009-10-02 02:30:50 +00:00
Mike Stump
440af3d903
Fix up debug information for block pointers a bit more.
...
llvm-svn: 83231
2009-10-02 02:23:37 +00:00
Anders Carlsson
39e3eb12ae
When building constant structs, check if the resulting LLVM struct will be bigger than the record layout size and use a packed struct if that's the case. Fixes PR5108.
...
llvm-svn: 83230
2009-10-02 02:15:20 +00:00
Douglas Gregor
f343fd8929
Make sure to free the explicit template arguments provided for an
...
explicit instantiation. Also, tighten up reference-count checking to
help catch these issues earlier. Fixes PR5069.
llvm-svn: 83225
2009-10-01 23:51:25 +00:00
Steve Naroff
bb69c94798
- Remove Sema::FindMethodInNestedImplementations().
...
- Add ObjCInterfaceDecl::lookupPrivateInstanceMethod().
- Convert clients.
No functionality change - One less method in Sema:-)
llvm-svn: 83224
2009-10-01 23:46:04 +00:00
Douglas Gregor
78b691a458
When the return type of a function is dependent, don't perform any
...
of the flow-control checks for falling off the end of a function,
since the return type may instantiate to void. Similarly, if a
return statement has an expression and the return type of the function
is void, don't complain if the expression is type-dependent, since
that type could instantiate to void.
Fixes PR5071.
llvm-svn: 83222
2009-10-01 23:25:31 +00:00
Mike Stump
017460ab6c
Implement a FIXME. This improves codegen just a tad.
...
llvm-svn: 83221
2009-10-01 22:29:41 +00:00
Fariborz Jahanian
a0f91ad59c
enumerator value of 0 is not a null pointer constant for
...
deciding const of null pointer conversion. Fixes PR5086.
llvm-svn: 83217
2009-10-01 22:10:15 +00:00
Douglas Gregor
369acf9304
CodeGen may see out-of-line declarations of the various special member
...
functions when they are explicitly declared, e.g., via a function
template specialization or explicit template instantiation
declaration. Don't try to synthesize bodies for the special member
functions in this case; rather, check whether we have an implicit
declaration and, if so, synthesize the appropriate function
body. Fixes PR5084.
llvm-svn: 83212
2009-10-01 20:44:19 +00:00
Fariborz Jahanian
b3c44f9ee9
Patch to implement static casting which requires one
...
user-defined type conversion. Fixes PR5040.
llvm-svn: 83211
2009-10-01 20:39:51 +00:00
Fariborz Jahanian
e4b21aba44
Set __EXCEPTIONS by checking on darwin's triple.
...
Patch by Rafael Espindola.
llvm-svn: 83209
2009-10-01 20:30:46 +00:00
Ted Kremenek
5c22e110a1
Fix bad grammar in static analyzer diagnostic. Reported by Robert Purves!
...
llvm-svn: 83204
2009-10-01 17:31:50 +00:00
Rafael Espindola
00a665751d
Move the "needs exception support" logic to clang. This also fixes
...
-fno-exceptions in C++ code. We used to always define __EXCEPTIONS in
C++.
llvm-svn: 83199
2009-10-01 13:33:33 +00:00
Douglas Gregor
e364e7bc2b
Fix a lame regression in IR gen for C++ delete expressions. PR5102
...
llvm-svn: 83195
2009-10-01 05:49:51 +00:00