Ted Kremenek
19d4d2f0ef
Add reverse iterator for initializers in constructor. Patch by Marcin Świderski!
...
llvm-svn: 113800
2010-09-13 22:26:02 +00:00
Ted Kremenek
8c1e37bfbe
Add 'insert()' to BumpVector. Patch by Marcin Świderski!
...
llvm-svn: 113799
2010-09-13 22:25:59 +00:00
Ted Kremenek
35965b972e
Remove from the CFG the half-implemented support for scoping information. We decided that scope information doesn't belong in the CFG at all, since it is a lexical construct.
...
Patch by Marcin Świderski!
llvm-svn: 113798
2010-09-13 22:25:54 +00:00
Sebastian Redl
5c649bc7bb
Don't crash when using type traits on a class with a constructor template.
...
llvm-svn: 113796
2010-09-13 22:18:28 +00:00
Sebastian Redl
c15c326b51
Remove CXXRecordDecl::getDefaultConstructor(), an inherently unsafe function due to lazy declaration of default constructors. Now that __has_nothrow_constructor doesn't use it anymore, part of PR8101 is fixed.
...
llvm-svn: 113794
2010-09-13 22:02:47 +00:00
Eric Christopher
26c045d9ff
Try to get this to stop leaving a temporary file on linux.
...
llvm-svn: 113793
2010-09-13 21:51:42 +00:00
Sebastian Redl
951006f510
Have __has_nothrow_copy use Sema's lookup routines. This fixes the problem with not finding implicitly declared copy constructors, part of PR8107.
...
llvm-svn: 113784
2010-09-13 21:10:20 +00:00
Sebastian Redl
8eb06f17c4
Eagerly evaluate type traits in Sema instead of lazily in AST. They actually need Sema access to be correct, fixes coming up.
...
llvm-svn: 113782
2010-09-13 20:56:31 +00:00
Devang Patel
068b5b3d61
Recognize .ll as input files.
...
Handle %test_debuginfo on a RUN command line.
This set up now allows one to write small test cases to check debug info.
e.g.
; RUN: %clang -O0 -g %s -c -o %t.o
; RUN: %clang %t.o -o %t.out
; RUN: %test_debuginfo %s %t.out
define i32 @f1(i32 %i) nounwind ssp {
; DEBUGGER: break f1
; DEBUGGER: r
; DEBUGGER: p i
; CHECK: $1 = 42
entry:
%i.addr = alloca i32, align 4
...
...
}
It is also possible now to write test cases in c/c++.
The plan is to store these debug info testcases in a separate place.
llvm-svn: 113780
2010-09-13 20:46:23 +00:00
Argyrios Kyrtzidis
14ec9f674a
When applying 'delete' on a pointer-to-array type match GCC and EDG behavior and treat it as 'delete[]'.
...
Also offer a fix-it hint adding '[]'.
llvm-svn: 113778
2010-09-13 20:15:54 +00:00
Argyrios Kyrtzidis
9b0d1cf47c
Remove the trivial setters from CXXDeleteExpr.
...
llvm-svn: 113777
2010-09-13 20:15:40 +00:00
Argyrios Kyrtzidis
cebc0f006f
Add a compatibility note about clang not implicitly converting between objc_object* and id (and SEL, Class).
...
llvm-svn: 113761
2010-09-13 17:48:07 +00:00
Argyrios Kyrtzidis
2716b9ae54
Update 'docs/PCHInternals.html' about how subexpressions are stored.
...
llvm-svn: 113760
2010-09-13 17:48:02 +00:00
Douglas Gregor
e47191cfe1
Fix a typo noted by Gabor
...
llvm-svn: 113754
2010-09-13 16:44:26 +00:00
Fariborz Jahanian
0aa35b9cf5
Block description for trivial block literals have
...
their 'isa' field scanned regardless.
llvm-svn: 113749
2010-09-13 16:09:44 +00:00
Argyrios Kyrtzidis
f24d569f9e
Fix C++ PCH issue.
...
The canonical FunctionTemplateDecl contains the specializations but we cannot use getCanonicalDecl on Template because it may still be initializing.
Write and read it from PCH.
Fixes http://llvm.org/PR8134
llvm-svn: 113744
2010-09-13 11:45:48 +00:00
Argyrios Kyrtzidis
0e8b3ce247
Avoid setters in ASTDeclReader::VisitClassTemplatePartialSpecializationDecl.
...
llvm-svn: 113743
2010-09-13 11:45:41 +00:00
Argyrios Kyrtzidis
b4c659b662
Avoid setters in ASTDeclReader::VisitClassTemplateSpecializationDecl.
...
llvm-svn: 113742
2010-09-13 11:45:32 +00:00
Argyrios Kyrtzidis
caf8248fc5
Avoid setters in ASTDeclReader::VisitCXXRecordDecl.
...
llvm-svn: 113741
2010-09-13 11:45:25 +00:00
Abramo Bagnara
3aabb4b452
Congruent diagnostic for void* arithmetic.
...
llvm-svn: 113740
2010-09-13 06:50:07 +00:00
Abramo Bagnara
6a0c4097f1
Parentheses around address non-type template argument is demoted to an extension warning.
...
llvm-svn: 113739
2010-09-13 06:06:58 +00:00
Douglas Gregor
bdd7b2358b
Don't assert when attempting to take the address of an overloaded
...
function fails due to ambiguities in partial ordering of function
templates. Fixes PR8033.
llvm-svn: 113725
2010-09-12 08:16:09 +00:00
Douglas Gregor
d5b730c9d5
When performing overload resolution, only compare the final conversion
...
sequences for two conversion functions when in fact we are in the text
of initialization by a user-defined conversion sequences. Fixes PR8034.
llvm-svn: 113724
2010-09-12 08:07:23 +00:00
Douglas Gregor
6162334ce0
Diagnose the instantiation of variables (including static data
...
members) with function type. Fixes PR8047.
llvm-svn: 113723
2010-09-12 07:37:24 +00:00
Douglas Gregor
6309e3d18e
Don't complain about useless user-defined conversion functions when
...
they were instantiated from a template. In template metaprogramming,
stuff happens. Fixes PR8065.
llvm-svn: 113722
2010-09-12 07:22:28 +00:00
Douglas Gregor
8ce63154d0
When diagnosing C++ [temp.expl.spec]p3 in C++98/03 mode, downgrade the
...
error to a warning if we're in a case that would be allowed in
C++0x. This "fixes" PR8084 by making Clang accept more code than GCC
and (non-strict) EDG do.
Also, add the missing test case for the C++0x semantics, which should
have been in r113717.
llvm-svn: 113718
2010-09-12 05:24:55 +00:00
Douglas Gregor
b1aab43887
Implement C++0x semantics for [temp.expl.spec]p2, which loosens the
...
restrictions on out-of-line specializations to allow them anywhere in
an enclosing context. Motivated by PR8084.
llvm-svn: 113717
2010-09-12 05:08:28 +00:00
Francois Pichet
488b4a7d94
Add basic support for Microsoft enum forward declaration.
...
Assigning an underlying integral type to an enum forward declaration will come in a next patch.
llvm-svn: 113716
2010-09-12 05:06:55 +00:00
Douglas Gregor
2bbc0266e0
Implement the "note" in C++ [over.built]p1, which is actually meant to
...
be a semantic requirement that a built-in overloaded operator is not
added to the overload set of there is already a user-defined
overloaded operator with the same parameter types. Fixes PR8087.
llvm-svn: 113713
2010-09-12 04:28:07 +00:00
Douglas Gregor
c87f4d4aba
Don't perform integral promotions from an incompletion enumeration
...
type. Fixes PR8089 in a slightly different way than had been suggested.
llvm-svn: 113711
2010-09-12 03:38:25 +00:00
Douglas Gregor
32b3de519d
Teach the EvaluatedExprVisitor and its client, which marks
...
declarations in potentially-evaluated subexpressions, about
recursion. Fixes the release-mode self-host failure I introduced in
r113700.
llvm-svn: 113708
2010-09-11 23:32:50 +00:00
Chris Lattner
8ee6a4142a
Augment -ftrapv to check for divide by zero, mod by zero, and INT_MIN % -1.
...
Patch by John Regehr!
llvm-svn: 113705
2010-09-11 21:47:09 +00:00
Francois Pichet
9672347122
Update website to reflect that tests are no longer failing on Windows.
...
llvm-svn: 113704
2010-09-11 21:16:11 +00:00
Douglas Gregor
8694aea7db
Add a completely unnecessary "template" keyword to appease GCC
...
llvm-svn: 113703
2010-09-11 20:47:38 +00:00
Francois Pichet
8f170b8239
Fix last test still failing on Win32. 100% pass rate now!
...
llvm-svn: 113702
2010-09-11 20:43:12 +00:00
Douglas Gregor
a139692ada
Update documentation to reflect the addition of support for in-class
...
initialization of static const floating-point data membmers (John's
patch, in r113663).
llvm-svn: 113701
2010-09-11 20:30:02 +00:00
Douglas Gregor
8a01b2a392
When parsing default function arguments, do not mark any declarations
...
used in the default function argument as "used". Instead, when we
actually use the default argument, make another pass over the
expression to mark any used declarations as "used" at that point. This
addresses two kinds of related problems:
1) We were marking some declarations "used" that shouldn't be,
because we were marking them too eagerly.
2) We were failing to mark some declarations as "used" when we
should, if the first time it was instantiated happened to be an
unevaluated context, we wouldn't mark them again at a later point.
I've also added a potentially-handy visitor class template
EvaluatedExprVisitor, which only visits the potentially-evaluated
subexpressions of an expression. I bet this would have been useful for
noexcept...
Fixes PR5810 and PR8127.
llvm-svn: 113700
2010-09-11 20:24:53 +00:00
Douglas Gregor
c6876fe121
Document our extension to constant-fold __builtin_strlen and strlen
...
llvm-svn: 113699
2010-09-11 18:08:34 +00:00
Douglas Gregor
250ab1dc0e
The two libclang crash-recovery tests that involve precompiled
...
preambles end up leaving the precompiled preambles around. This is by
design, since we do minimal cleanup during crash recovery. However,
it's unfortunate for testing, so introduce a hook that allows these
two tests to put the precompiled preamble somewhere where we can
delete them after testing.
llvm-svn: 113698
2010-09-11 18:05:19 +00:00
Douglas Gregor
e10f0e5670
If we fail to create a temporary file for the precompiled preamble,
...
just abort creation of the precompiled preamble rather than doing
silly things. This is the second part of the fix for the weird
preamble-related failures on Windows. Big thanks to Francois Pichet
for the great detective work!
llvm-svn: 113697
2010-09-11 17:56:52 +00:00
Nuno Lopes
d4e42830cb
add latest gentoo gcc path
...
llvm-svn: 113696
2010-09-11 17:51:45 +00:00
Douglas Gregor
ce3449f5bd
Tweak GetPreamblePCHPath() to more closely match the behavior of the
...
Windows GetTempPath() function, and be sure to create the directory in
which the precompiled preamble will reside before creating the
temporary file itself.
llvm-svn: 113695
2010-09-11 17:51:16 +00:00
Anton Korobeynikov
82b3333b72
Disable cxa_atexit by default on MingW.
...
Patch by Dimitry Andric!
llvm-svn: 113683
2010-09-11 11:17:06 +00:00
Michael J. Spencer
9efc54890d
CMake: Fix mingw32 build.
...
llvm-svn: 113677
2010-09-11 02:13:48 +00:00
Fariborz Jahanian
933c6723a4
Fixes an obscure bug in importd block variable layout
...
information when imported variable is used
more than once. Originally though to be a bug in importing
block varibles. Fixes radar 8417746.
llvm-svn: 113675
2010-09-11 01:27:29 +00:00
Sebastian Redl
a8bac37bb1
Test destructors in delete expressions and of temporaries for throwing.
...
llvm-svn: 113664
2010-09-10 23:27:10 +00:00
John McCall
db76892e72
Support in-class initialization of static const floating-point data members.
...
llvm-svn: 113663
2010-09-10 23:21:22 +00:00
Douglas Gregor
c7a7d92ad2
Fix my silly sorting predicate. I hate integer-to-bool conversions
...
llvm-svn: 113656
2010-09-10 23:05:54 +00:00
Sebastian Redl
b8a76c42b5
Address Doug's comments.
...
llvm-svn: 113650
2010-09-10 22:34:40 +00:00
Douglas Gregor
ca3682d486
Make sure we're producing a newline in the preprocessed output before
...
emitting a #pragma, whenever one is needed. Fixes <rdar://problem/8417307>.
llvm-svn: 113648
2010-09-10 22:27:29 +00:00
Sebastian Redl
e56be2f72c
Eli helped me understand how evaluation contexts work.
...
llvm-svn: 113642
2010-09-10 21:57:27 +00:00
Daniel Dunbar
b5b7d1a415
Driver: Set TOOL_NO_EXPORTS when building a "production" compiler, we don't
...
currently expect that to be useful for plugins, and this is important for
startup performance:
--
ddunbar@lordcrumb:tmp$ touch empty.c
ddunbar@lordcrumb:tmp$ runN 100 ~/llvm.obj.64/Release/bin/clang -c empty.c
name avg min med max SD total
user 0.0054 0.0052 0.0054 0.0055 0.0000 0.5350
sys 0.0084 0.0090 0.0078 0.0087 0.0008 0.8390
wall 0.0149 0.0149 0.0149 0.0149 0.0003 1.4943
ddunbar@lordcrumb:tmp$ runN 100 ~/llvm.obj.64/Release/bin/clang -c empty.c
name avg min med max SD total
user 0.0036 0.0036 0.0036 0.0038 0.0000 0.3646
sys 0.0072 0.0071 0.0068 0.0070 0.0006 0.7158
wall 0.0123 0.0123 0.0122 0.0136 0.0003 1.2262
--
llvm-svn: 113638
2010-09-10 21:42:03 +00:00
Sebastian Redl
c48e6e9f28
Follow Ted's example and hide CXXNoexceptExpr's setters from all but serialization.
...
llvm-svn: 113634
2010-09-10 21:15:56 +00:00
Michael J. Spencer
0881f4a367
CMake: Update to use standard CMake dependency tracking facilities instead
...
of whatever we were using before...
llvm-svn: 113631
2010-09-10 21:13:16 +00:00
Sebastian Redl
8c40ba392c
Test CXXNoexceptExpr codegen and serialization.
...
llvm-svn: 113630
2010-09-10 21:04:03 +00:00
Sebastian Redl
b67655fc6d
Implement CXXNoexceptExpr codegen.
...
llvm-svn: 113629
2010-09-10 21:04:00 +00:00
Sebastian Redl
4fa4a6b85e
Add another small test case.
...
llvm-svn: 113628
2010-09-10 21:03:58 +00:00
Sebastian Redl
9ac55dd8e4
Serialization support for CXXNoexceptExpr.
...
llvm-svn: 113627
2010-09-10 20:55:54 +00:00
Ted Kremenek
ba1a68bbc3
Make 'setProperty()', 'setBase()', and 'setLocation()' private in ObjCPropertyRefExpr, and friend ASTStmtReader so that it is the only class that can use them.
...
llvm-svn: 113626
2010-09-10 20:55:52 +00:00
Sebastian Redl
dbd14bdefc
Tests for noexcept in templates.
...
llvm-svn: 113625
2010-09-10 20:55:50 +00:00
Sebastian Redl
5f0180d815
First version of a testcase, plus fixes.
...
llvm-svn: 113624
2010-09-10 20:55:47 +00:00
Sebastian Redl
4202c0f2a9
Define and implement CXXNoexceptExpr. Create it in Sema.
...
llvm-svn: 113623
2010-09-10 20:55:43 +00:00
Sebastian Redl
22e3a93586
Parse the noexcept operator and stub out sema.
...
llvm-svn: 113622
2010-09-10 20:55:37 +00:00
Sebastian Redl
ce354af895
Implement Expr::CanThrow, a function that applies the noexcept operator rules to expressions.
...
llvm-svn: 113621
2010-09-10 20:55:33 +00:00
Sebastian Redl
2b1832e445
Make CallExpr::getCalleeDecl look through pointer derefs.
...
llvm-svn: 113620
2010-09-10 20:55:30 +00:00
Sebastian Redl
7ec4c282f2
Fix a comment.
...
llvm-svn: 113619
2010-09-10 20:55:27 +00:00
Ted Kremenek
0a3f523614
Polish diagnostics for null dereferences via ObjC ivar accesses. Finishes up <rdar://problem/6352035>.
...
llvm-svn: 113612
2010-09-10 20:20:49 +00:00
Fariborz Jahanian
f93ac89414
IRGen fix for using property-dot syntax to pass
...
reference object to a c++ member function.
fixes radar 8409336.
llvm-svn: 113602
2010-09-10 18:56:35 +00:00
Chandler Carruth
41754a0028
Re-devirtualize this. A new virtual method snuck in.
...
llvm-svn: 113582
2010-09-10 08:13:48 +00:00
Douglas Gregor
6a6dac2fbf
Support strlen() and __builtin_strlen() as constant expressions with
...
the call argument is a string literal. Fixes
<rdar://problem/8413477>.
llvm-svn: 113580
2010-09-10 06:27:15 +00:00
Ted Kremenek
6c0cc5e69a
Add checker implementation for my previous commit!
...
llvm-svn: 113574
2010-09-10 03:45:29 +00:00
Ted Kremenek
e495c99055
Implement: <rdar://problem/6351970> rule request: warn if @synchronized mutex can be nil
...
llvm-svn: 113573
2010-09-10 03:05:40 +00:00
Ted Kremenek
ed12f1b9f9
Add ObjCAtSynchronizedStmt to the CFG and add GRExprEngine support (PreVisit for checkers).
...
llvm-svn: 113572
2010-09-10 03:05:33 +00:00
Ted Kremenek
516484c71e
Update checker build.
...
llvm-svn: 113569
2010-09-10 01:20:17 +00:00
Tom Care
4545b2df42
Added AnalyzerStatsChecker, a path sensitive check that reports visitation statistics about analysis. Running clang with the -analyzer-stats flag will emit warnings containing the information. We can then run a postanalysis script to take this data and give useful information about how much the analyzer missed in a project.
...
llvm-svn: 113568
2010-09-10 00:44:44 +00:00
Douglas Gregor
a93ab66331
Add libclang support for label statements, gotos, and taking the
...
address of a label (GNU extension).
llvm-svn: 113564
2010-09-10 00:22:18 +00:00
Douglas Gregor
d198047ef3
Add libclang visitation for C99 designated initializers.
...
llvm-svn: 113560
2010-09-09 23:28:23 +00:00
Douglas Gregor
0d4d88cf38
Add libclang visitation for __builtin_offsetof's components (fields
...
and array references).
llvm-svn: 113556
2010-09-09 23:10:46 +00:00
Fariborz Jahanian
e89d03f619
property reference expression used on lhs of assignment
...
follows objective's semantics and is not overload'able
with an assignment operator. Fixes a crash and a missing
diagnostics. Radar 8379892.
llvm-svn: 113555
2010-09-09 23:01:10 +00:00
Ted Kremenek
5cdaeaaa1d
Clean up obtuse wording of checker diagnostic of using an uninitialized value in a function call.
...
Fixes: <rdar://problem/8409480> “warning: Pass-by-value argument in function call is undefined” message can be improved
llvm-svn: 113554
2010-09-09 22:51:55 +00:00
Douglas Gregor
c7d6576d54
When we parse a pragma, keep track of how that pragma was originally
...
spelled (#pragma, _Pragma, __pragma). In -E mode, use that information
to add appropriate newlines when translating _Pragma and __pragma into
#pragma, like GCC does. Fixes <rdar://problem/8412013>.
llvm-svn: 113553
2010-09-09 22:45:38 +00:00
Daniel Dunbar
ccbc45262b
Driver/Darwin: Make the compilation object available in AddLinkArgs.
...
llvm-svn: 113549
2010-09-09 21:51:05 +00:00
Douglas Gregor
f3af311382
Teach libclang to walk the base and member initializers of a
...
constructor, in source order. Also introduces a new reference kind for
class members, which is used here (for member initializers) and will
also be used for designated initializers and offsetof.
llvm-svn: 113545
2010-09-09 21:42:20 +00:00
Daniel Dunbar
7ce4686958
Fix typo in diagnostic.
...
llvm-svn: 113542
2010-09-09 21:27:25 +00:00
Daniel Dunbar
859dba6637
Driver: Mark function as nounwind when -mkernel or -fapple-kext is present.
...
llvm-svn: 113541
2010-09-09 21:17:44 +00:00
Bill Wendling
324f8b798f
Remove the 'rc' suffix. It indicates a "release candidate" during LLVM release
...
qualification.
llvm-svn: 113534
2010-09-09 20:27:36 +00:00
Ted Kremenek
ff3a4ff6e9
Use FindReportInEquivalenceClass to identify all the nodes used for the trimmed graph (in BugReporter). This fixes a problem where a leak that happened to occur on both an exit() path and a non-exit() path was getting reported with the exit() path (which users don't care about).
...
This fixes:
<rdar://problem/8331641> leak reports should not show paths that end with exit() (but ones that don't end with exit())
llvm-svn: 113524
2010-09-09 19:05:34 +00:00
Daniel Dunbar
0166c95fdd
Frontend: Add -cxx-system-include option which can be used to specify an
...
explicit list for the C++ system include directories at the -cc1 level, as an
alternative to the horrible AddDefaultCPlusPlusIncludePaths().
llvm-svn: 113505
2010-09-09 17:38:22 +00:00
Daniel Dunbar
1cf2d54987
Fix indentation.
...
llvm-svn: 113504
2010-09-09 17:38:18 +00:00
Douglas Gregor
9f0e1aa0f2
Simplify template instantiation for C++ exception declarations,
...
eliminating an unnecessary use of TemporaryBase in the process.
llvm-svn: 113500
2010-09-09 17:09:21 +00:00
Douglas Gregor
3b29b2c795
Eliminate some unnecessary uses of TreeTransform::TemporaryBase. There
...
are still a few (legitimate, unfortunate) uses of this hack around,
but at least now there are fewer.
llvm-svn: 113498
2010-09-09 16:55:46 +00:00
Douglas Gregor
ce5aa33385
Eliminate the comma locations from all of the Sema routines that deal
...
with comma-separated lists. We never actually used the comma
locations, nor did we store them in the AST, but we did manage to
waste time during template instantiation to produce fake locations.
llvm-svn: 113495
2010-09-09 16:33:13 +00:00
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