Douglas Gregor
57df3b4b12
Use temporary files for this test, to see if we can flush out an inexplicable error on Windows
...
llvm-svn: 113493
2010-09-09 16:16:39 +00:00
Douglas Gregor
54e5b13a27
Add proper type-source information to UnaryTypeTraitExpr, including
...
libclang visitation.
llvm-svn: 113492
2010-09-09 16:14:44 +00:00
Douglas Gregor
c9199f522f
Clean up CMake dependencies
...
llvm-svn: 113489
2010-09-09 15:44:58 +00:00
Benjamin Kramer
d4b4b7e8a1
Remove unused variable.
...
llvm-svn: 113482
2010-09-09 12:27:34 +00:00
Argyrios Kyrtzidis
e262a9558e
Fix C++ PCH issue.
...
Another beating by boost in this test case: http://llvm.org/PR8117
A function specialization wasn't properly initialized if it wasn't canonical.
I wish there was a nice little test case but this was boost.
llvm-svn: 113481
2010-09-09 11:28:23 +00:00
Gabor Greif
230ddf37af
do not bind temporaries to non-const references
...
this fixes all analyser test failures in my gcc34-based
environment
how the cast result could bind to the non-const ref is
somewhat mysterious and remains to be investigated; to
avoid similar miscompilations (by gcc34 only?)
llvm-svn: 113480
2010-09-09 10:51:37 +00:00
Ted Kremenek
5f256da834
Rename GRState::getSVal() -> getRawSVal() and getSimplifiedSVal() -> getSVal().
...
The end result is now we eagarly constant-fold symbols in the analyzer that are perfectly constrained
to be a constant value. This allows us to recover some path-sensitivity in some cases by lowering
the required level of reasoning power needed to evaluate some expressions.
The net win from this change is that the false positive in PR 8015 is fixed, and we also
find more idempotent operations bugs.
We do, however, regress with the BugReporterVisitors, which need to be modified to understand
this constant folding (and look past it). This causes some diagnostic regressions in plist-output.m
which will get addressed in a future patch. plist-output.m is now marked XFAIL, while
plist-output-alternate.m now tests that the plist output is working, but with the suboptimal
diagnostics. This second test file will eventually be removed.
llvm-svn: 113477
2010-09-09 07:13:00 +00:00
Ted Kremenek
02627a22cf
Fix indentation.
...
llvm-svn: 113476
2010-09-09 06:53:59 +00:00
Ted Kremenek
b8176da314
Check format strings when a called function has more than one FormatAttr (one for 'scanf' and one for 'printf'). Fixes <rdar://problem/8409437>.
...
llvm-svn: 113472
2010-09-09 04:33:05 +00:00
Ted Kremenek
1520dae606
It appears that technically a null format string is not warned under -Wformat-nonliteral, as
...
the function processing the format string can decided whether or not to accept a null format string (e.g., asl_log). Fixes <rdar://problem/8269537>.
llvm-svn: 113469
2010-09-09 03:51:42 +00:00
Ted Kremenek
808829351e
Avoid redundant recursive calls in SemaCheckStringLiteral by just updating the expression
...
and trying again.
llvm-svn: 113468
2010-09-09 03:51:39 +00:00
Ted Kremenek
bc5860b652
Remove tabs I accidentally introduced.
...
llvm-svn: 113467
2010-09-09 02:57:51 +00:00
Ted Kremenek
f146cd1fa3
Remove stray ';' and convert tabs to spaces.
...
llvm-svn: 113466
2010-09-09 02:57:48 +00:00
Tom Care
68df12f0c4
Simplified reachability checking in IdempotentOperationChecker and added a helper function for path display.
...
- Created private class CFGReachabilityAnalysis, which provides cached reachability lookups in the CFG
- Simplified PathWasCompletelyAnalyzed to use the new reachability class
- Added getLastRelevantNodes function for future use with path displaying in BugReporter
llvm-svn: 113465
2010-09-09 02:04:52 +00:00
Ted Kremenek
0f107e4386
Relax __attribute_((nonnull)) checking to allow the attribute on functions with no pointer arguments. GCC doesn't warn
...
in this case, and the attribute is trivially satisfied (and benign). Fixes <rdar://problem/8364828>.
llvm-svn: 113464
2010-09-09 01:17:32 +00:00
Ted Kremenek
5ebb6156d8
Include test case for <rdar://problem/5880430>.
...
llvm-svn: 113458
2010-09-09 00:40:43 +00:00
Ted Kremenek
8f0e834c4c
Static analyzer fix: <rdar://problem/5880430> Switch on enum should not consider default case live if all enum values are covered
...
llvm-svn: 113457
2010-09-09 00:40:40 +00:00
Fariborz Jahanian
cfddabf5a3
Block ivar layout must assume that the 'isa'
...
field of the block descriptor is GC'able (scanned)
as this what the runtime expects (one can send it
messages). Radar 8394947.
llvm-svn: 113454
2010-09-09 00:21:45 +00:00
Ted Kremenek
f2b0a1bfa0
Enhance -Wunreachable-code to not consider the 'default:' branch of a switch statement live if a switch on an enum value has
...
explicit 'case:' statements for each enum value.
llvm-svn: 113451
2010-09-09 00:06:10 +00:00
Ted Kremenek
50205744c3
Enhance -Wreturn-type to not warn when control-flow is most likely limited by a switch statement explicitly covering
...
all the cases for an enum value.
llvm-svn: 113450
2010-09-09 00:06:07 +00:00
Ted Kremenek
b037185b52
Add 'filtered_pred_iterator' and 'filtered_succ_iterator' to CFGBlock. This allows a client
...
to selectively walk successors/predecessors based on commonly used filters. For starters, add
a filter to ignore 'default:' cases for SwitchStmts when all enum values are covered by CaseStmts.
llvm-svn: 113449
2010-09-09 00:06:04 +00:00
Ted Kremenek
fd525ef338
Initialize 'AllEnumCasesCovered' in SwitchStmt's constructor.
...
llvm-svn: 113448
2010-09-09 00:06:01 +00:00
Ted Kremenek
c42f345157
When building SwitchStmts in Sema, record whether all the enum values of a switch(enum) where
...
covered by individual case statements. Flow-based analyses may wish to consult this information,
and recording this in the AST allows us to obviate reconstructing this information later when
we build the CFG.
llvm-svn: 113447
2010-09-09 00:05:53 +00:00
Douglas Gregor
a5614c5fe8
Push the range associated with a nested-name-specifier further through
...
TreeTransform, since we were getting an empty source range where we
shouldn't. Sadly, the test case is Boost.Proto, and isn't worth
reducing.
llvm-svn: 113446
2010-09-08 23:56:00 +00:00
Francois Pichet
5cc0a67f08
Fix warnings caused by new CXXUuidofExprClass enumerator.
...
llvm-svn: 113444
2010-09-08 23:47:05 +00:00
Daniel Dunbar
c6f6df088f
Add another missing CMake dependency.
...
llvm-svn: 113443
2010-09-08 23:40:30 +00:00
Douglas Gregor
4c7c109eec
Fix a few minor issues with parsing and semantic analysis of C++
...
typeid expressions:
- make sure we have a proper source location for the closing ')'
- cache the declaration of std::type_info once we've found it
llvm-svn: 113441
2010-09-08 23:14:30 +00:00
Dawn Perchik
a42039d5eb
Add support for a few MS extensions supported by the Borland compiler
...
(__uuidof, _fastcall, etc.).
llvm-svn: 113434
2010-09-08 22:56:24 +00:00
Douglas Gregor
67da50e18d
When providing a completion for a function/method parameter of block
...
pointer type, actually provide a usable block literal expression.
llvm-svn: 113431
2010-09-08 22:47:51 +00:00
Fariborz Jahanian
5138b62edc
Test removed.
...
llvm-svn: 113428
2010-09-08 22:36:14 +00:00
Argyrios Kyrtzidis
e177863afc
Decl::CheckAccessDeclContext() keeps asserting. Access is not set in some cases.
...
llvm-svn: 113419
2010-09-08 21:58:42 +00:00
Fariborz Jahanian
d4ec16ca71
Removed test case.
...
llvm-svn: 113418
2010-09-08 21:55:57 +00:00
Douglas Gregor
b2f0713ddc
Clean up some of the CMake dependencies
...
llvm-svn: 113416
2010-09-08 21:40:53 +00:00
Douglas Gregor
8ec5173f9a
Use the new-initialization code for initializing scalars with a
...
function-style cast. Previously, we had a (redundant, incorrect)
semantic-checking path for non-class types, which allowed
value-initialization of a reference type and then crashed.
llvm-svn: 113415
2010-09-08 21:40:08 +00:00
Fariborz Jahanian
db45278cbd
Reverse r113397 until we decide what to do with
...
use of 'struct objc_object*' for 'is' (and others)
in clang.
llvm-svn: 113414
2010-09-08 21:36:35 +00:00
Argyrios Kyrtzidis
260b4a8e92
Re-enable CheckAccessDeclContext and make sure it doesn't trigger assertions.
...
llvm-svn: 113413
2010-09-08 21:32:35 +00:00
Bill Wendling
73f59c433d
Initialize the MSVCGuidDecl variable in the correct order.
...
llvm-svn: 113412
2010-09-08 21:30:16 +00:00
Fariborz Jahanian
40efc0feb4
Fix a crash when overloading id with objc_object*.
...
Radar 8400356.
llvm-svn: 113397
2010-09-08 20:08:18 +00:00
Argyrios Kyrtzidis
f4bc0d87ee
Fix C++ PCH issues.
...
PCH got a severe beating by the boost-using test case reported here: http://llvm.org/PR8099
Fix issues like:
-When PCH reading, make sure Decl's getASTContext() doesn't get called since a Decl in the parent hierarchy may be initializing.
-In ASTDeclReader::VisitFunctionDecl VisitRedeclarable should be called before using FunctionDecl's isCanonicalDecl()
-In ASTDeclReader::VisitRedeclarableTemplateDecl CommonOrPrev must be initialized before anything else.
llvm-svn: 113391
2010-09-08 19:31:22 +00:00
Daniel Dunbar
04ebde017f
Frontend/-H: Add comment on why I used a temporary string here.
...
llvm-svn: 113379
2010-09-08 18:19:55 +00:00
Francois Pichet
9f4f2078d6
Microsoft's __uuidof operator implementation part 1.
...
llvm-svn: 113356
2010-09-08 12:20:18 +00:00
Francois Pichet
4ad4b58639
Allow type definitions inside anonymous struct/union in Microsoft mode.
...
llvm-svn: 113354
2010-09-08 11:32:25 +00:00
Sebastian Redl
02f1eebdc0
Don't give 'global constructor' warnings for function statics, even if they have a direct initializer. Fixes PR8095.
...
llvm-svn: 113344
2010-09-08 04:46:19 +00:00
John McCall
83556c1a80
Put the tautological-comparison-of-unsigned-against-zero warnings in
...
-Wtautological-compare instead of -Wsign-compare, which also implies turning
them on by default.
Restoration of r112877.
llvm-svn: 113334
2010-09-08 02:01:27 +00:00
John McCall
68ff03728a
Implement ARM static local initialization guards, which are more compact than
...
Itanium guards and use a slightly different compiled-in API.
llvm-svn: 113330
2010-09-08 01:44:27 +00:00
Sebastian Redl
a190d3605f
Allow (cv) void and incomplete arrays to be passed to the type traits.
...
Fixes PR8110, and thus PR8109, PR8097, and parts of PR8101, PR8105 and PR8107. Only a few traits have tests for incomplete arrays, since I'm not yet clear what the result for them should be; Howards wants to file a DR to change the standard.
llvm-svn: 113326
2010-09-08 00:48:43 +00:00
Gabor Greif
80c218386f
add a fixit when 'main' does ot return 'int'; review welcome
...
llvm-svn: 113324
2010-09-08 00:31:13 +00:00
Douglas Gregor
2b88c115f9
Provide proper type-source location information for
...
CXXTemporaryObjectExpr, CXXScalarValueInitExpr, and
CXXUnresolvedConstructExpr, getting rid of a bunch of FIXMEs in the
process.
llvm-svn: 113319
2010-09-08 00:15:04 +00:00
Fariborz Jahanian
366a94822b
Local static block variable referecned in its
...
block-literal initializer expression causes IRgen to crash.
This patch fixes by saving it in StaticLocalDecl map
already used for such purposes. (radar 8390455).
llvm-svn: 113307
2010-09-07 23:26:17 +00:00
Daniel Dunbar
53c9ac30f9
tests: Use -ffreestanding when including stdint.h, to avoid platform dependencies.
...
llvm-svn: 113301
2010-09-07 22:54:28 +00:00
Ted Kremenek
41994fd45d
Fix DeclPrinter to not include '=' in printing when no initializer is provided for a VarDecl. Patch by Jim Goodnow II!
...
llvm-svn: 113296
2010-09-07 22:21:59 +00:00
Gabor Greif
7af952801e
typo
...
llvm-svn: 113295
2010-09-07 22:17:12 +00:00
Douglas Gregor
0744ef6371
Improve source-location information for CXXNewExpr, by hanging on to
...
the TypeSourceInfo for the allocated type. Fixes PR7501.
llvm-svn: 113291
2010-09-07 21:49:58 +00:00
Ted Kremenek
aba4958db2
Fix null pointer dereference in StreamChecker::Fseek (reported in PR 8081) and simplify surrounding checking logic.
...
llvm-svn: 113282
2010-09-07 20:45:26 +00:00
Tom Care
bc9eaef24c
Re-enabled truncation/extension checking in IdempotentOperationChecker and added a test case.
...
llvm-svn: 113269
2010-09-07 20:27:56 +00:00
Douglas Gregor
e9b76c2a41
Add function attributes to the output of -ast-print-xml, from Martin Vejnar!
...
llvm-svn: 113266
2010-09-07 20:16:43 +00:00
Fariborz Jahanian
535618b927
get rid of a warning.
...
llvm-svn: 113256
2010-09-07 19:57:04 +00:00
Fariborz Jahanian
56603ef7b2
Have Sema check for validity of CGString literal
...
instead of asserting in IRGen. Fixes radar 8390459.
llvm-svn: 113253
2010-09-07 19:38:13 +00:00
Dale Johannesen
8499f47ef4
Allow 'o' and 'V' as constraints for output asm operands.
...
Allow '<' and '>' as constraints for input or output.
llvm-svn: 113246
2010-09-07 18:40:41 +00:00
John McCall
1ca73da0e6
Improve error recovery when we see ':' and expect a ';'.
...
I, at least, make this typo all the time.
llvm-svn: 113243
2010-09-07 18:31:03 +00:00
Dale Johannesen
2002e1f1bf
Adjust a test that's expecting optimizations to be done
...
on MMX palignr; we don't do this for the intrinsics.
llvm-svn: 113234
2010-09-07 18:11:53 +00:00
Daniel Dunbar
3d7e0e2c6b
Driver/Darwin: Catch another case where ld ends up using ld_classic.
...
llvm-svn: 113226
2010-09-07 17:50:41 +00:00
Daniel Dunbar
1eaf5c6abb
Driver/Darwin: Don't pass -demangle to the linker when we know it is going to
...
use ld_classic. This is a temporary workaround, the linkr itself should handle
this.
llvm-svn: 113212
2010-09-07 17:07:49 +00:00
Douglas Gregor
a7d6e3d0f5
Provide a specific diagnostic when trying to redefine an "extern
...
inline" function outside of GNU89 mode. Fixes
<rdar://problem/6880464>.
llvm-svn: 113204
2010-09-07 15:51:01 +00:00
Douglas Gregor
45d6bdfa88
Improve recovery when there is a stray ']' or ')' before the ';' at
...
the end of a statement. Fixes <rdar://problem/6896493>.
llvm-svn: 113202
2010-09-07 15:23:11 +00:00
Douglas Gregor
ce66d02877
Improve recovery when a comma is missing between enumerators in an
...
enumeration definition. Fixes <rdar://problem/7159693>.
llvm-svn: 113201
2010-09-07 14:51:08 +00:00
Douglas Gregor
3465e26102
Improve diagnostic and recovery when missing a comma between base or
...
member initializers in a C++ constructor. Fixes <rdar://problem/7796492>.
llvm-svn: 113199
2010-09-07 14:35:10 +00:00
Benjamin Kramer
25f9ea6f0a
Replace loops with SmallVector::append.
...
llvm-svn: 113185
2010-09-06 23:43:28 +00:00
Chris Lattner
03483613c2
Due to asmparser improvements, this error message is now better
...
llvm-svn: 113177
2010-09-06 22:09:27 +00:00
Argyrios Kyrtzidis
d05f3e3730
Fix a C++ PCH problem which was exposed by r113019. CXXBaseOrMemberInitializer's IsWritten and source order is not set.
...
llvm-svn: 113161
2010-09-06 19:04:27 +00:00
Chris Lattner
d7ff9f91bf
remove curly quotes, patch by Dimitry Andric!
...
llvm-svn: 113156
2010-09-06 17:52:29 +00:00
Argyrios Kyrtzidis
2fdb5b5955
LastFieldBitfield in CGObjCCommonMac::BuildAggrIvarLayout keeps bitfields or unnamed fields but later the code
...
assumes that it's always a bitfield. This can lead to a crash (reported at rdar://8368320).
llvm-svn: 113154
2010-09-06 12:00:10 +00:00
Zhongxing Xu
33dfc07b00
FinishBlock() is essentially doing nothing except returning '!badCFG'.
...
llvm-svn: 113149
2010-09-06 07:32:31 +00:00
Zhongxing Xu
b1e10aa670
Simplify CFG construction: bail out early when we have a bad CFG.
...
llvm-svn: 113148
2010-09-06 07:04:06 +00:00
Rafael Espindola
b2d0d40c3d
Make "-ccc-cxx" option work on Linux.
...
Patch by nobled.
I also took the opportunity to make the field private since now it is only ready from the
outside.
llvm-svn: 113138
2010-09-06 02:36:23 +00:00
Eli Friedman
08e3cdcffa
Get rid of unnecessary return.
...
llvm-svn: 113132
2010-09-06 00:31:37 +00:00
Eli Friedman
abebebf742
Update test for r113128.
...
llvm-svn: 113131
2010-09-06 00:30:50 +00:00
Chris Lattner
52bcf96384
move the hackaround for PR6537 to catch unions as well,
...
fixing the ICE in PR7151
llvm-svn: 113130
2010-09-06 00:13:11 +00:00
Chris Lattner
f53c096813
clean up some formatting.
...
llvm-svn: 113129
2010-09-06 00:11:41 +00:00
Eli Friedman
0b1fbd1394
PR7242: Make sure to use a different context for evaluating constant
...
initializers, so the result of the evaluation doesn't leak through
inconsistently. Also, don't evaluate references to variables with
initializers with side-effects.
llvm-svn: 113128
2010-09-06 00:10:32 +00:00
Chris Lattner
ee8df8f167
fix PR7192 by defining wchar_t in a more conventional way. The
...
type of L"x" can change based on command line arguments.
llvm-svn: 113127
2010-09-05 23:29:49 +00:00
Steven Watanabe
2ba828f36d
Tell the VS headers that char16_t and char32_t are keywords, so yvals.h doesn't try to define them as typedefs.
...
llvm-svn: 113126
2010-09-05 23:16:22 +00:00
Chris Lattner
f0b0497343
fix 7320: we can't delete a trailing space if it doesn't exist.
...
llvm-svn: 113125
2010-09-05 23:16:09 +00:00
Eli Friedman
8ed2bac65d
PR8023: Don't crash on invalid uses of __real__ on class types in C++.
...
llvm-svn: 113124
2010-09-05 23:15:52 +00:00
Nick Lewycky
1b36b55f89
No functional change. Replace Out << 'a' << 'b' with Out << "ab" and spell
...
David Vandevoorde's name correctly.
llvm-svn: 113103
2010-09-05 03:40:33 +00:00
Chris Lattner
938cebc076
"const id<NSFoo> *" instead of "id<NSFoo> const *".
...
I think this wraps up all the legal cases.
llvm-svn: 113096
2010-09-05 00:43:21 +00:00
Chris Lattner
edead1266e
"const id<NSFoo> *" not "id<NSFoo> const*"
...
llvm-svn: 113095
2010-09-05 00:36:44 +00:00
Chris Lattner
7f2c7f4ef3
"const std::vector<int>*" not "std::vector<int> const*"
...
llvm-svn: 113094
2010-09-05 00:27:00 +00:00
Chris Lattner
c4bf372e43
"const _Complex float *" not "_Complex float const *"
...
llvm-svn: 113093
2010-09-05 00:22:25 +00:00
Chris Lattner
24b89469ac
'const std::type_info*' instead of 'std::type_info const*'
...
llvm-svn: 113092
2010-09-05 00:17:29 +00:00
Chris Lattner
9dd55103c1
print "const intptr_t" instead of "intptr_t const"
...
llvm-svn: 113091
2010-09-05 00:07:29 +00:00
Chris Lattner
53fa04909c
make clang print types as "const int *" instead of "int const*",
...
which is should have done from the beginning. As usual, the most
fun with this sort of change is updating all the testcases.
llvm-svn: 113090
2010-09-05 00:04:01 +00:00
Chris Lattner
1c2cc0adba
revert this, it isn't safe.
...
llvm-svn: 113088
2010-09-04 23:43:40 +00:00
Chris Lattner
5ad6bc6f35
tidy up
...
llvm-svn: 113087
2010-09-04 23:37:43 +00:00
Chris Lattner
edbdff64c7
revise r112365 to fix the actual problem: the isa<TagType>(Underlying)
...
check in the "typedef for anonymous type" check should have been a
getAs.
llvm-svn: 113085
2010-09-04 23:16:01 +00:00
Fariborz Jahanian
60babfb8a1
Casting of a property reference to 'void' did not
...
generate the necessary code. This patch fixes it.
// rdar://8389655
llvm-svn: 113079
2010-09-04 19:49:18 +00:00
Chris Lattner
a3d232ad27
zap more dead code.
...
llvm-svn: 113076
2010-09-04 18:19:08 +00:00
Chris Lattner
9795b39113
zap dead code.
...
llvm-svn: 113074
2010-09-04 18:12:20 +00:00
John McCall
2917bd0fb4
Petty optimization.
...
llvm-svn: 113049
2010-09-04 01:26:37 +00:00
Zhanyong Wan
18ca8bf850
fix a crash in RecursiveASTVisitor's child classes (PR8403); reviewed by chandlerc.
...
llvm-svn: 113038
2010-09-03 23:50:56 +00:00
Douglas Gregor
09c0eb1510
Synchronize code-completion cursor kinds with indexing cursor
...
kinds. How shameful that this code was duplicated!
llvm-svn: 113033
2010-09-03 23:30:36 +00:00
Fariborz Jahanian
087206dbcd
Truncate block variable of bool type to i1 when its
...
value is used. This matches with non-block variable
use of bool type. (Fixes radar 8390062).
llvm-svn: 113027
2010-09-03 23:07:53 +00:00
Chandler Carruth
f92bd8cf22
Fix PR7402 when it strikes via template instantiation.
...
llvm-svn: 113019
2010-09-03 21:54:20 +00:00
Anders Carlsson
f849774495
It's OK for classes to have flexible array elements (but not unions).
...
llvm-svn: 113018
2010-09-03 21:53:49 +00:00
Fariborz Jahanian
9d798d13f3
Cope with llvm's reference to bool type of 'i1' vs. clang's
...
type of 'i8' for the same for __block variables of
type bool. refixes radar 8382559.
llvm-svn: 113015
2010-09-03 21:36:02 +00:00
Chandler Carruth
b916499161
Clean up some whitespace and comments from this test that were remnants of
...
a previous iteration of the test.
llvm-svn: 113013
2010-09-03 21:17:53 +00:00
Chandler Carruth
9bb67f4d1a
Allow anonymous and local types. The support was already in place for these,
...
but this makes them work even as an extension in C++98. This resolves PR8077.
llvm-svn: 113011
2010-09-03 21:12:34 +00:00
John McCall
56f57589af
A constant initializer never matches the type of the variable it's
...
initializing; it at best matches the element type of the variable
it's initializing. Fixes PR8073.
llvm-svn: 112992
2010-09-03 18:58:50 +00:00
Douglas Gregor
901a0fabfc
Implement libclang visitation for UnresolvedMemberExpr. This is the
...
last of the C++-specific expressions where we have decent source
information in the AST already. In particular, various
object-construction expressions (CXXNewExpr, CXXTemporaryObjectExpr)
still have poor source-location information that needs to be addressed.
llvm-svn: 112981
2010-09-03 18:01:25 +00:00
Fariborz Jahanian
dadfc1c144
Use std::string instead of llvm::StringRef to avoid dangling ref.
...
Per Chris's comment.
llvm-svn: 112979
2010-09-03 18:01:09 +00:00
Douglas Gregor
4583827e13
libclang visitation for CXXDependentScopeMemberExpr
...
llvm-svn: 112978
2010-09-03 17:35:34 +00:00
Fariborz Jahanian
9e42a952d7
Use getSpelling to get original text of the
...
c++ operator token. (radar 8328250).
llvm-svn: 112977
2010-09-03 17:33:04 +00:00
Douglas Gregor
4ae34afaf9
libclang visitation for DependentScopeDeclRefExpr
...
llvm-svn: 112975
2010-09-03 17:24:10 +00:00
Douglas Gregor
6368235c5a
Add missing #include
...
llvm-svn: 112974
2010-09-03 17:16:03 +00:00
Dawn Perchik
90ca316167
Put the info on testing from the command line into its own section
...
titled "Testing on the Command Line".
llvm-svn: 112972
2010-09-03 17:01:13 +00:00
Chris Lattner
d7e9383ba0
fix a hard coded version number, PR8031. Patch by 'nobled'.
...
llvm-svn: 112970
2010-09-03 16:47:03 +00:00
Chris Lattner
c766b6edd1
fix lookup of bits/c++config.h on mingw, patch by Ismail Donmez!
...
llvm-svn: 112969
2010-09-03 16:45:53 +00:00
Douglas Gregor
c4ef180dd2
Simplify code-completion result sorting a bit
...
llvm-svn: 112968
2010-09-03 16:23:44 +00:00
Daniel Dunbar
bf257a652d
Avoid unnecessary redirect, so that stderr shows up in output.
...
llvm-svn: 112965
2010-09-03 15:45:00 +00:00
Francois Pichet
a5a5f470f1
First test commit by Francois Pichet. _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES is not a predefined macro, remove it.
...
llvm-svn: 112953
2010-09-03 08:42:01 +00:00
John McCall
e37a619715
Update the internals manual for the removal of Action, as well as other
...
changes that are much older.
llvm-svn: 112951
2010-09-03 05:07:55 +00:00
John McCall
417e74491c
Add a quick-and-dirty hack to give a better diagnostic for [class.protected]
...
restrictions. The note's not really on the right place given its wording,
but putting a second note on the call site (or muddying the wording) doesn't
appeal.
There are corner cases where this can be wrong, but I'm not concerned.
llvm-svn: 112950
2010-09-03 04:56:05 +00:00
Chris Lattner
3dd48bd169
"I see dead code". IdempotentOperationChecker::isTruncationExtensionAssignment
...
should probably be removed if it has no purpose, but I just #if'd it out
in case it's usefulIdempotentOperationChecker::isTruncationExtensionAssignment
should probably be removed if it has no purpose, but I just #if'd it out
in case it's useful
llvm-svn: 112949
2010-09-03 04:34:38 +00:00
John McCall
96326e447c
Devirtualize Sema, kill off DeleteExpr and DeleteStmt, and reformat.
...
llvm-svn: 112945
2010-09-03 02:10:08 +00:00
Daniel Dunbar
2f8df98c92
IRgen: Fix silly thinko in r112021, which was generating code for the same expr
...
twice. This showed up as an assert on the odd test case because we generated the
decl map entry twice.
llvm-svn: 112943
2010-09-03 02:07:00 +00:00
Dawn Perchik
335e16bad4
Add symantic support for the Pascal calling convention via
...
"__attribute((pascal))" or "__pascal" (and "_pascal" under
-fborland-extensions). Support still needs to be added to llvm.
llvm-svn: 112939
2010-09-03 01:29:35 +00:00
Bob Wilson
6061b05d51
Translate NEON vabdl, vaba, and vabal builtins to be implemented using the
...
vabd intrinsic combined with zext and add operations.
llvm-svn: 112937
2010-09-03 01:27:09 +00:00
John McCall
0d635f53a8
Re-commit r112916 with an additional fix for the self-host failures.
...
I've audited the remaining getFunctionInfo call sites.
llvm-svn: 112936
2010-09-03 01:26:39 +00:00
Fariborz Jahanian
0389df4a45
Patch to allow alternative representation of c++
...
operators (and, or, etc.) to be used as selectors
to match g++'s behavior.
llvm-svn: 112935
2010-09-03 01:26:16 +00:00
Anders Carlsson
4013404eff
Static local variables don't result in global constructors being emitted.
...
llvm-svn: 112933
2010-09-03 01:11:38 +00:00
Ted Kremenek
ba8752aac8
Support pointer arithmetic in SimpleSValuator involving direct constants.
...
llvm-svn: 112932
2010-09-03 01:07:06 +00:00
Ted Kremenek
5c0969f027
Remove bogus assertions.
...
llvm-svn: 112931
2010-09-03 01:07:04 +00:00
Ted Kremenek
5b24adda26
Add optional record of "location" SVals in the environment. When we analyzing loads/stores, we lose the location SVal, which makes it difficult to recover in some cases (e.g., for post diagnostics). This is prep for pending changes to GRExprEngine.
...
llvm-svn: 112930
2010-09-03 01:07:02 +00:00
Ted Kremenek
db4c128f2f
Add GRState::getSimplifiedSVal(), which provides an API hook for doing symbol -> constant folding. This isn't used yet, but
...
is prep for some pending optimizations in GRExprEngine.
llvm-svn: 112929
2010-09-03 01:06:58 +00:00
Ted Kremenek
860aca01dc
Fix enum: CallEnter/CallExit are StmtPoints
...
llvm-svn: 112928
2010-09-03 01:06:44 +00:00
Anders Carlsson
4399668652
Remove now unused function.
...
llvm-svn: 112927
2010-09-03 00:51:09 +00:00
Daniel Dunbar
90dc0c574d
Fix a typo.
...
llvm-svn: 112926
2010-09-03 00:41:43 +00:00
John McCall
c32f94b4ce
Revert r112916, it's breaking selfhost pretty badly.
...
llvm-svn: 112925
2010-09-03 00:40:45 +00:00
Daniel Dunbar
be13194655
Revert "Another i1 vs. i8 type mismatch issue. This time", it breaks some projects.
...
llvm-svn: 112922
2010-09-03 00:35:23 +00:00
Anders Carlsson
af7534f084
Get rid of the "functions declared 'noreturn' should have a 'void' result type" warning.
...
The rationale behind this is that it is normal for callback functions to have a non-void return type
and it should still be possible to mark them noreturn. (JavaScriptCore is a good example of this).
llvm-svn: 112918
2010-09-03 00:25:02 +00:00
Daniel Dunbar
09c8fbe812
tests: Fix a dependency on the temporary value names.
...
llvm-svn: 112917
2010-09-03 00:24:06 +00:00
John McCall
12d3891a27
It's not safe to use the generic CXXMethodDecl overload of CGT::getFunctionInfo
...
to set up a destructor call, because ABIs can tweak these conventions.
Fixes rdar://problem/8386802.
llvm-svn: 112916
2010-09-03 00:01:57 +00:00
Dawn Perchik
68bb1b441f
Add support for Borland extensions via option -fborland-extensions
...
(original patch r112791 was reverted due to a bug).
llvm-svn: 112915
2010-09-02 23:59:25 +00:00
Daniel Dunbar
a70fab8dd7
IRgen/Obj-C: Rewrite Objective-C bit-field access to compute the access strategy
...
using the same methods as used for normal structures.
- This fixes problems with reading past the end of the structure and with
handling straddled bit-field access.
llvm-svn: 112914
2010-09-02 23:53:31 +00:00
Daniel Dunbar
c7f9bbafe4
IRgen: Move CGBitFieldInfo strategy computation helpers to static member
...
functions.
llvm-svn: 112913
2010-09-02 23:53:28 +00:00
Tom Care
796ed50433
Reapply 112850 and 112839 with a constructor for the BinaryOperatorData struct. Clang would zero out the enum and pointer in the struct in some conditions, but GCC would never zero out the values.
...
llvm-svn: 112909
2010-09-02 23:30:22 +00:00
Douglas Gregor
040ad500c4
Fix a few more ConvertTypes that should be ConvertTypeForMems, fixing
...
two regressions in Boost.Config.
llvm-svn: 112908
2010-09-02 23:24:14 +00:00
Sebastian Redl
b469afb4f3
Implement __has_virtual_destructor. Patch by Steven Watanabe.
...
llvm-svn: 112905
2010-09-02 23:19:42 +00:00
Chris Lattner
369721a16e
stop looking for #uses comments.
...
llvm-svn: 112898
2010-09-02 22:48:26 +00:00
Chris Lattner
60c160ff4d
remove some tests that aren't adding any value: the check lines don't
...
make it clear what they're testing so there is no way to know it's right
or to update it.
llvm-svn: 112897
2010-09-02 22:43:55 +00:00
Bill Wendling
447fa62226
Add a couple of FIXMEs. The types of palignr are different here than in GCC.
...
llvm-svn: 112891
2010-09-02 22:38:10 +00:00
Bob Wilson
5b4904f7a3
Add a bunch of missing bitcasts for clang NEON builtin expansions.
...
Radar 8388233
llvm-svn: 112890
2010-09-02 22:37:30 +00:00
Douglas Gregor
f24eaee2b3
Teach libclang to visit OverloadExprs, so that we can reuse this
...
code. Also, teach it about explicitly-specified template arguments.
llvm-svn: 112884
2010-09-02 22:29:21 +00:00
John McCall
310083c3e3
sabre points out that the timing here is pretty pessimal; I'll retry the
...
experiment in a few days.
llvm-svn: 112882
2010-09-02 22:27:38 +00:00
Douglas Gregor
3ca46b4275
Add libclang visitation for UnresolvedLookupExprs
...
llvm-svn: 112879
2010-09-02 22:19:24 +00:00
John McCall
25f7aa8158
Experimentally move the tautological comparison warnings from -Wsign-compare
...
to -Wtautological-compare. This implies that they're now on by default.
If this causes chaos, I'll figure something else out.
llvm-svn: 112877
2010-09-02 22:18:59 +00:00
Douglas Gregor
4edb2ff89f
Add libclang visitation for C++ pseudo-destructor expressions.
...
llvm-svn: 112873
2010-09-02 22:09:03 +00:00
Bill Wendling
eeb53e60bc
Reorder the MMX builtins to be in their own ostracized group.
...
llvm-svn: 112872
2010-09-02 22:07:51 +00:00
Bill Wendling
e6fd79bc1c
Newline at end of file.
...
llvm-svn: 112871
2010-09-02 22:07:07 +00:00
Douglas Gregor
6429f5cf29
Eliminate CXXBindReferenceExpr, which was used in a ton of
...
well-intentioned but completely unused code.
llvm-svn: 112868
2010-09-02 21:50:02 +00:00
Douglas Gregor
fd81cea70c
Teach libclang not to recursive into default argument expressions
...
llvm-svn: 112866
2010-09-02 21:38:13 +00:00
Daniel Dunbar
5dc823f7ef
Add a compatibility note about why Clang rejects jumps past __block variables.
...
llvm-svn: 112865
2010-09-02 21:35:16 +00:00
Douglas Gregor
46af501065
Add libclang visitation for C++ typeid expressions.
...
llvm-svn: 112862
2010-09-02 21:20:16 +00:00
Douglas Gregor
32e4c861c8
In libclang, visit the nested-name-specifier and explicitly-specified template arguments of a MemberExpr.
...
llvm-svn: 112860
2010-09-02 21:07:44 +00:00
Tom Care
9fbfeea05b
Reverting 112850 and 112839 due to test failures on some systems
...
llvm-svn: 112857
2010-09-02 20:58:38 +00:00
Douglas Gregor
aac7c8106a
Visit the nested-name-specifier and explicitly-specified template
...
arguments of a DeclRefExpr.
llvm-svn: 112854
2010-09-02 20:35:02 +00:00
Tom Care
a25b273a5b
Fixed broken build with GCC
...
llvm-svn: 112850
2010-09-02 19:00:08 +00:00
John McCall
1ba95136f2
Teach RecursiveASTVisitor to optionally visit bodies of instantiations.
...
Based on a patch by Francois Pichet!
llvm-svn: 112848
2010-09-02 18:48:54 +00:00
David Chisnall
cf60744cd7
Tidy up last commit, as per Devang's comments.
...
llvm-svn: 112840
2010-09-02 18:01:51 +00:00
Tom Care
1ce2faca05
Improved error reporting in IdempotentOperationChecker
...
- SourceRange highlighting is only given for the relevant side of the operator (assignments give both)
- Added PostVisitBinaryOperator hook to retrieve the ExplodedNode for an operator
- Added a BugReporterVisitor to display the last store to every VarDecl in a Stmt
- Changed bug reporting to use the new BugReporterVisitor
llvm-svn: 112839
2010-09-02 17:49:20 +00:00
Douglas Gregor
04f3621860
Revert my two IRgen fixes for "bool", then use a far simpler approach
...
based on ConvertTypeForMem. Thanks to John for pointing out the right
solution.
llvm-svn: 112838
2010-09-02 17:38:50 +00:00
Douglas Gregor
3335f48448
Implement basic visitation for nested name specifiers via libclang
...
cursors. Sadly, this visitation is a hack, because we don't have
proper source-location information for nested-name-specifiers in the
AST. It does improve on the status quo, however.
llvm-svn: 112837
2010-09-02 17:35:32 +00:00
Fariborz Jahanian
05bbef63b6
Another i1 vs. i8 type mismatch issue. This time
...
a 'bool' byref variable in memory. Fixes radar 8382559.
llvm-svn: 112835
2010-09-02 17:28:31 +00:00
David Chisnall
6bf98ff491
Use the unmangled name for the display name in Objective-C debug info. This should have no effect with the Mac runtime where clang (unlike GCC) uses the display name symbol name.
...
llvm-svn: 112833
2010-09-02 17:16:32 +00:00
Douglas Gregor
262e4e2ab5
Fix more i1/i8 pointer madness. Here, an overactive assertion
...
complains when the element type of a C++ "delete" expression is
different from what we would expect from the pointer type. When
deleting a bool*, we end up with an i1 on one side (where we compute
the LLVM type from the Clang bool type) and i8 on the other (where we
grab the LLVM type from the LLVM pointer type). I've weakened the
assertion appropriately, and the Boost Parallel Graph Library now
passes its regression tests.
llvm-svn: 112821
2010-09-02 15:34:35 +00:00
Benjamin Kramer
cd495039cc
Avoid implicit string construction.
...
llvm-svn: 112820
2010-09-02 15:06:24 +00:00
Douglas Gregor
e791a0546c
Fix a crash involving pointer-to-data-members of boolean type. We were
...
constructing an LLVM PointerType directly from the "bool"'s LLVM type
(i1), which resulted in unfortunate pointer type i1*. The fix is to
build the LLVM PointerType from the corresponding Clang PointerType,
so that we get i8* in the case of a bool.
John, please review. I also left a FIXME there because we seem to be
dropping "volatile", which would be rather unfortunate.
llvm-svn: 112819
2010-09-02 15:00:29 +00:00
John McCall
9bca923c10
Simplify some random accesses to the ASTContext from the ABI classes.
...
llvm-svn: 112816
2010-09-02 10:25:57 +00:00
John McCall
db8af38670
Stupid emacs keystroke.
...
llvm-svn: 112815
2010-09-02 10:15:05 +00:00
John McCall
8ed55a54fd
Abstract IR generation of array cookies into the C++ ABI class and
...
implement ARM array cookies. Also fix a few unfortunate bugs:
- throwing dtors in deletes prevented the allocation from being deleted
- adding the cookie to the new[] size was not being considered for
overflow (and, more seriously, was screwing up the earlier checks)
- deleting an array via a pointer to array of class type was not
causing any destructors to be run and was passing the unadjusted
pointer to the deallocator
- lots of address-space problems, in case anyone wants to support
free store in a variant address space :)
llvm-svn: 112814
2010-09-02 09:58:18 +00:00
Duncan Sands
7f1982731e
Correct this test for the fact that the number of uses is now printed
...
in a comment.
llvm-svn: 112813
2010-09-02 08:52:56 +00:00
Dawn Perchik
f0882f90f3
Reverting rev 112791 - apparently -fborland-extensions is on all the time?!
...
llvm-svn: 112797
2010-09-02 02:18:55 +00:00
Zhongxing Xu
dcf7b3501d
update comments.
...
llvm-svn: 112796
2010-09-02 01:56:39 +00:00
Zhongxing Xu
ef94284f2f
Tweak test case. 'int' would introduce out-of-bound issues. We focus on array
...
index constraints in this case.
llvm-svn: 112794
2010-09-02 01:42:44 +00:00
Ted Kremenek
cbe6b0b846
Enhance return-stack-address check (in Sema) to handle fields that themselves are references. (Fixes PR 7999; fix by Chandler Carruth).
...
llvm-svn: 112792
2010-09-02 01:12:13 +00:00
Dawn Perchik
1fcc18c7bc
Add support for Borland extensions via option -fborland-extensions
...
llvm-svn: 112791
2010-09-02 01:12:01 +00:00
Ted Kremenek
07343c02be
For GRExprEngine::EvalBind() (and called visitors), unifiy StoreE and AssignE. Now StoreE (const Stmt*) represents the expression where the store took place, which is the assignment expression if it takes place in an assignment. This removes some conceptual dissidence as well as removes an extra parameter from the Checker::PreVisitBind() visitor. It also improves ranges and source location information in analyzer diagnostics.
...
llvm-svn: 112789
2010-09-02 00:56:20 +00:00
Zhanyong Wan
e65eb99bd2
Fixes a warning when compiling Clang (Sema has virtual methods but a non-virtual dtor). Reviewed by chandlerc and nlewycky.
...
llvm-svn: 112786
2010-09-02 00:43:20 +00:00
Ted Kremenek
1e424241b4
Fixed unused variable warning.
...
llvm-svn: 112784
2010-09-02 00:34:30 +00:00
Douglas Gregor
d3f48bd3be
Introduce a new libclang function,
...
clang_getSpecializedCursorTemplate(), which determines the template
(or member thereof) that the given cursor specializes or from which it
was instantiated. This routine can be used to establish a link between
templates and their instantiations/specializations.
llvm-svn: 112780
2010-09-02 00:07:54 +00:00
Zhanyong Wan
abb6d6d618
Make RecursiveASTVisitor not crash when a TemplateArgumentLoc object has a NULL TypeSourceInfo*. This fixes the symptom of http://llvm.org/PR8043 . Reviewed by csilvers.
...
llvm-svn: 112777
2010-09-01 23:54:22 +00:00
Bill Wendling
da08c3824b
Add some MMX builtins to correspond with the intrinsics now accepted by
...
LLVM. This will be used by the mmintrin.h header, but that bit still needs to be
worked out.
llvm-svn: 112776
2010-09-01 23:54:16 +00:00
Ted Kremenek
f3a734d8ee
Add yet another test case for PR 8015, showing how reasoning over symbolic indices should exactly resolve over multiple index possibilities (and thus suppress the false positive in the test).
...
llvm-svn: 112770
2010-09-01 23:37:38 +00:00
Ted Kremenek
121ddd6a5c
Add another test case for PR 8015, here with the array index being within a valid range and not just a single constant.
...
llvm-svn: 112769
2010-09-01 23:37:36 +00:00
Ted Kremenek
0e12f9cc7b
Partial fix for PR 8015 (fix is actually by Jordy Rose, and I added a test case for follow-on work). This patch adds a bandaid for RegionStore's limited reasoning about symbolic array values.
...
llvm-svn: 112766
2010-09-01 23:27:26 +00:00
Bob Wilson
1b87c9a646
Translate NEON vmull, vmlal, and vmlsl builtins to llvm multiply-add/sub
...
with zext/sext operations, instead of to llvm intrinsics. I have a plan to
avoid the clang builtins for these, but it is going to take a little longer
and I want to get the NEON intrinsics updated before the 2.8 release.
llvm-svn: 112764
2010-09-01 23:20:27 +00:00
Craig Silverstein
50391ba195
Update the docstring to say FriendTemplateDecl is not actually used.
...
Based on discussion with rjmccall and dgregor.
llvm-svn: 112762
2010-09-01 23:07:49 +00:00
Ted Kremenek
d588e78b95
Don't assert in the analyzer when analyze code does a byte load from a function's address. Fixes PR 8052.
...
llvm-svn: 112761
2010-09-01 23:00:46 +00:00
Craig Silverstein
0eaac04e47
Make some docstring clarifications, after discussion with dgregor.
...
llvm-svn: 112759
2010-09-01 22:55:38 +00:00
Douglas Gregor
be99693127
Fix the source-range information for an EnumConstantDecl; previously,
...
it did not include the initializer expression.
llvm-svn: 112739
2010-09-01 20:41:53 +00:00
Ted Kremenek
026cb58a44
Don't assert in CastSizeChecker when the casted-to pointee is an incomplete type. Fixes PR 8050.
...
llvm-svn: 112738
2010-09-01 20:35:38 +00:00
Douglas Gregor
982152433b
Test visiting the template parameters of template template parameters,
...
support for which came in with the last commit.
llvm-svn: 112735
2010-09-01 20:21:58 +00:00
Douglas Gregor
06c7d2df9b
Teach libclang to visit the default arguments of template parameters.
...
llvm-svn: 112734
2010-09-01 20:16:53 +00:00
Douglas Gregor
a9aa29cf0b
Implement libclang support for using declarations. Clang actually uses
...
three different kinds of AST nodes to represent using declarations:
UsingDecl, UnresolvedUsingValueDecl, and
UnresolvedUsingTypenameDecl. These three are collapsed into a single
cursor kind for using declarations, since libclang clients don't need
the distinction.
Several related changes here:
- Cursor visitation of the three AST nodes for using declarations
- Proper source-range computation for these AST nodes
- Using declarations have no USRs, since they don't actually declare
any entities.
llvm-svn: 112730
2010-09-01 19:52:22 +00:00
Fariborz Jahanian
61a312413c
Fix IRGen when property-dot syntax used to access
...
a c++ class object 'ivar'. Fixes radar 8366604.
llvm-svn: 112729
2010-09-01 19:36:41 +00:00
Douglas Gregor
9dc243c3eb
Improve libclang indexing support for class template specializations
...
in a few related ways:
- Don't recurse into instantiations of templates.
- Recurse into explicit specializations.
- Visit the template arguments of an explicit specialization or
explicit instantiation.
- Include template specialization arguments in the USRs for class
template specializations.
llvm-svn: 112720
2010-09-01 17:32:36 +00:00
Benjamin Kramer
2bd4cee516
StringRefize.
...
llvm-svn: 112718
2010-09-01 17:28:48 +00:00
Douglas Gregor
57879faf91
Make it clear that libclang does not modify the command-line arguments
...
it is given.
llvm-svn: 112717
2010-09-01 16:43:19 +00:00
Douglas Gregor
920cadf9ae
Add test for nothing... i.e., the contents of a USR for using directives
...
llvm-svn: 112716
2010-09-01 16:37:17 +00:00
Douglas Gregor
eece0eaa85
Transfer calling-convention attributes down to member function pointers.
...
llvm-svn: 112715
2010-09-01 16:29:03 +00:00
Chris Lattner
988fd16060
add a new version of mingw, patch by İsmail "cartman" Dönmez
...
in PR8049
llvm-svn: 112710
2010-09-01 15:51:58 +00:00
Chris Lattner
0073962025
when emitting an error about a missing } in a compound statement, emit
...
a "to match this {" note, pointing out the opener.
llvm-svn: 112709
2010-09-01 15:49:26 +00:00
Douglas Gregor
01a430134f
Implement libclang support for using directives (cursor + visitation +
...
suppressing USRs). Also, fix up the source location information for
using directives so that the declaration location refers to the
namespace name.
llvm-svn: 112693
2010-09-01 03:07:18 +00:00
Ted Kremenek
0ef508d301
Split ObjCInterfaceDecl::ReferencedProtocols into two lists: ReferencedProtocols and AllReferencedProtocols. ReferencedProtocols
...
(and thus protocol_begin(), protocol_end()) now only contains the list of protocols that were directly referenced in
an @interface declaration. 'all_referenced_protocol_[begin,end]()' now returns the set of protocols that were referenced
in both the @interface and class extensions. The latter is needed for semantic analysis/codegen, while the former is
needed to maintain the lexical information of the original source.
Fixes <rdar://problem/8380046>.
llvm-svn: 112691
2010-09-01 01:21:15 +00:00
Chris Lattner
d426c8eae3
fix rdar://8360877 a really nasty miscompilation in Boost.Xpressive
...
caused by my ABI work. Passing:
struct outer {
int x;
struct epsilon_matcher {} e;
int f;
};
as {i32,i32} isn't safe, because the offset of the second element
needs to be at 8 when it is interpreted as a memory value.
llvm-svn: 112686
2010-09-01 00:50:20 +00:00
Chris Lattner
be5eb17536
same refactoring as before, this time on the argument side.
...
llvm-svn: 112684
2010-09-01 00:24:35 +00:00
Chris Lattner
52b3c13149
refactor some code to cut down on redundancy, no functionality change.
...
llvm-svn: 112683
2010-09-01 00:20:33 +00:00
Douglas Gregor
f9e43cef54
Improve location information in the representation of namespace
...
aliases. Previously, the location of the alias was at the "namespace"
keyword. Now, it's on the identifier being declared (as is the custom
for Clang), and we keep a separate source location for the "namespace"
keyword.
Also, added a getSourceRange() member function to NamespaceAliasDecl
to correctly compute the source range.
Finally, removed a bunch of setters from NamespaceAliasDecl and gave
ASTReaderDecl friendship so that it could set the corresponding fields
directly.
llvm-svn: 112681
2010-09-01 00:08:19 +00:00
Fariborz Jahanian
39de024e66
Prevent warning when built with assert off.
...
llvm-svn: 112680
2010-08-31 23:54:38 +00:00
Fariborz Jahanian
eb5a307259
xcode project file update.
...
llvm-svn: 112677
2010-08-31 23:49:56 +00:00
Douglas Gregor
a89314e396
Add libclang support for namespace aliases (visitation + USRs) along
...
with a new cursor kind for a reference to a namespace.
There's still some oddities in the source location information for
NamespaceAliasDecl that I'll address with a separate commit, so the
source locations displayed in the load-namespaces.cpp test will
change.
llvm-svn: 112676
2010-08-31 23:48:11 +00:00
Fariborz Jahanian
abaae2b692
Some support for unicode string constants
...
in wide strings. radar 8360841.
llvm-svn: 112672
2010-08-31 23:34:27 +00:00
Sebastian Redl
a93bb5b807
Implement __has_feature(cxx_inline_namespaces)
...
llvm-svn: 112671
2010-08-31 23:28:47 +00:00
Anton Korobeynikov
1b80c2aaee
Add NetBSD include search path
...
llvm-svn: 112663
2010-08-31 22:39:50 +00:00
John McCall
c265ad253e
Add convenience accessors for determining whether template declarations are definitions.
...
llvm-svn: 112656
2010-08-31 22:21:26 +00:00
Douglas Gregor
f11309e194
Add a new libclang function clang_getTemplateCursorKind(), which
...
determines the kind of declaration that would be generated if the
given template were instantiated. This allows a client to distinguish
among class/struct/union templates and function/member function/static
member function templates.
Also, teach clang_CXXMethod_isStatic() about function templates.
llvm-svn: 112655
2010-08-31 22:12:17 +00:00
John McCall
c134eb5ada
Amusingly, I missed this point of abstraction in all my earlier
...
member-pointer refactoring: dereferencing a member data pointer.
llvm-svn: 112640
2010-08-31 21:07:20 +00:00
Sebastian Redl
bd59576541
Make inline namespace not be transparent after all. The concept simply doesn't fit. Instead, special-case the few places where transparent contexts have the desired behavior for inline namespaces. Fixes a redeclaration issue in inline namespaces.
...
llvm-svn: 112637
2010-08-31 20:53:31 +00:00
Douglas Gregor
a23e8f7a0f
Extend libclang with a new cursor kind that indicates a reference to a
...
template. Such cursors occur, for example, in template specialization
types such as vector<int>. Note that we do not handle the
super-interesting case where the template name is unresolved, e.g.,
within a template.
llvm-svn: 112636
2010-08-31 20:37:03 +00:00
Douglas Gregor
f96abb293a
Add libclang support for class template partial specializations,
...
including a cursor kind, visitation, and USRs.
llvm-svn: 112629
2010-08-31 19:31:58 +00:00
Douglas Gregor
1fbaeb196b
Add a libclang cursor kind, visitation support and USR support for C++
...
class templates.
llvm-svn: 112627
2010-08-31 19:02:00 +00:00
Ted Kremenek
0f5d8bc5fc
Improve CFG printing support for CXXOperatorCallExpr and CXXBindTemporaryExpr.
...
llvm-svn: 112619
2010-08-31 18:47:37 +00:00
Ted Kremenek
128d04dfe8
Explicitly handle CXXOperatorCallExpr when building CFGs. We should treat it the same as CallExprs.
...
Fixes: <rdar://problem/8375510> [Boost] CFGBuilder crash in Boost.Graph
llvm-svn: 112618
2010-08-31 18:47:34 +00:00
Fariborz Jahanian
c6bf0bd51b
AST work to support [C++] [IRgen] for ?: with missing LHS
...
This is also pr7726 and wip. No change in functionality
at this time.
llvm-svn: 112612
2010-08-31 18:02:20 +00:00
Douglas Gregor
713602bb09
Implement basic support for indexing function templates in
...
libclang. This includes:
- Cursor kind for function templates, with visitation logic
- Cursor kinds for template parameters, with visitation logic
- Visitation logic for template specialization types, qualified type
locations
- USR generation for function templates, template specialization
types, template parameter types.
Also happens to fix PR7804, which I tripped across while testing.
llvm-svn: 112604
2010-08-31 17:01:39 +00:00
Chris Lattner
04dc957260
Add support for windows x86-64 varargs, patch by Cameron Esfahani!
...
llvm-svn: 112603
2010-08-31 16:44:54 +00:00
Chris Lattner
0f0492e69c
improve isHexaLiteral to work with escaped newlines and trigraphs,
...
patch by Francois Pichet!
llvm-svn: 112602
2010-08-31 16:42:00 +00:00
Douglas Gregor
12bca22e91
libclang indexing support for C++ constructors, destructors, and
...
conversion functions. This introduces new cursor kinds for these three
C++ entities, and reworks visitation of function declarations so that
we get type-source information for the names.
llvm-svn: 112600
2010-08-31 14:41:23 +00:00
Douglas Gregor
db2be6a592
Add a simple test for indexing namespaces
...
llvm-svn: 112598
2010-08-31 13:31:19 +00:00
John McCall
5d865c3292
Teach IR generation to return 'this' from constructors and destructors
...
under the ARM ABI.
llvm-svn: 112588
2010-08-31 07:33:07 +00:00
Chandler Carruth
fc0e2a03fa
Fix a regression that allowed clearly ill formed code. The diagnostic is still
...
terrible, FIXME left to do a proper job of diagnosing this.
llvm-svn: 112581
2010-08-31 05:42:40 +00:00
Douglas Gregor
79a2788512
Revert my lame attempt at appeasing the CFGBuilder
...
llvm-svn: 112580
2010-08-31 05:36:56 +00:00
Douglas Gregor
400f59763b
When provide code completions for a variadic Objective-C method
...
declaration send or a variadic function call, collapse the ", ..."
into the parameter before it, so that we don't get a second
placeholder.
llvm-svn: 112579
2010-08-31 05:13:43 +00:00
Douglas Gregor
f5d453d067
Teach the CFGBuilder not do die on CXXBindTemporaryExpr, CXXOperatorCallExpr. Fixes a Boost.Graph crasher.
...
llvm-svn: 112578
2010-08-31 05:10:27 +00:00
Sebastian Redl
7dcb155c18
Implement the __has_nothrow trait family, by Steven Watanabe.
...
llvm-svn: 112577
2010-08-31 04:59:00 +00:00
Ted Kremenek
b8691e6081
Add range of return value expression in ReturnUndefChecker. Patch by Jim Goodnow II!
...
llvm-svn: 112569
2010-08-31 01:35:32 +00:00
Sebastian Redl
5a5f2c76b6
Enable inline namespaces in C++03 as an extension.
...
llvm-svn: 112566
2010-08-31 00:36:45 +00:00
Sebastian Redl
35034569c7
Add a forgotten place where the enclosing namespace set matters, plus a big testcase for inline namespace fun.
...
llvm-svn: 112565
2010-08-31 00:36:40 +00:00
Sebastian Redl
b5c2baa2d7
Enable inline namespaces in the AST.
...
llvm-svn: 112564
2010-08-31 00:36:36 +00:00
Sebastian Redl
50c682585f
Rename DeclContext::getLookupContext to getRedeclContext and change its semantics slightly. No functionality change in the absence of inline namespaces. Also, change a few places where inline namespaces actually make a difference to be prepared for them.
...
llvm-svn: 112563
2010-08-31 00:36:30 +00:00