Commit Graph

68218 Commits

Author SHA1 Message Date
Daniel Dunbar d5bd81e869 Move isMacosxVersionLT helpers to Darwin tool chain.
llvm-svn: 82211
2009-09-18 08:14:55 +00:00
Daniel Dunbar 510d8a8dd8 Lift getMacosxVersionMin out into Darwin ToolChain.
llvm-svn: 82210
2009-09-18 08:14:46 +00:00
Daniel Dunbar 4c30b89def Lift AddLinkerSearchPaths() into Darwin tool chain.
llvm-svn: 82209
2009-09-18 08:14:36 +00:00
Daniel Dunbar 48622c13f7 Rename a variable to match its semantics.
llvm-svn: 82208
2009-09-18 08:14:24 +00:00
Nick Lewycky 6a3260e004 Add newlines.
llvm-svn: 82206
2009-09-18 07:36:47 +00:00
Ted Kremenek e3d209ff77 Revert most of r82198, which was causing a large number of crashes
when running the analyzer on real projects.  We'll keep the change to
AnalysisManager.cpp in r82198 so that -fobjc-gc analyzes code
correctly in both GC and non-GC modes, although this may emit two
diagnostics for each bug in some cases (a better solution will come
later).

llvm-svn: 82201
2009-09-18 07:31:15 +00:00
Ted Kremenek 82f7f9c080 Introduce caching of diagnostics in BugReporter. This provides extra
pruning of diagnostics that may be emitted multiple times.  This is
accomplished by adding FoldingSet profiling support to PathDiagnostic,
and then having BugReporter record what diagnostics have been issued.

This was motived to a serious bug introduced by moving the
'divide-by-zero' checking outside of GRExprEngine into a separate
'Checker' class.  When analyzing code using the '-fobjc-gc' option, a
given function would be analyzed twice, but the second time various
"internal checks" would be disabled to avoid emitting multiple
diagnostics (e.g., "null dereference") for the same issue.  The
problem is that such checks also effect path pruning and don't just
emit diagnostics.  This resulted in an assertion failure involving a
real divide-by-zero in some analyzed code where we would get an
assertion failure in APInt because the 'DivZero' check was disabled
and didn't prune the logic that resulted in the divide-by-zero in the
analyzer.

The implemented solution is somewhat of a hack, and may not perform
extremely well.  This will need to be cleaned up over time.

As a regression test, 'misc-ps.m' has been modified so that its tests
are run using -fobjc-gc to test this diagnostic pruning behavior.

llvm-svn: 82198
2009-09-18 05:37:41 +00:00
Chris Lattner 01ce06fbbc don't stick an uninitialized 'stat' buf into the stat cache, fill it
with zeros.  This avoids a GCC warning (PR5000)

llvm-svn: 82194
2009-09-18 04:51:01 +00:00
Anders Carlsson 2b5e1dda69 More mangling goodness.
llvm-svn: 82193
2009-09-18 04:29:09 +00:00
Anders Carlsson adb08de4d9 Fix error in test.
llvm-svn: 82190
2009-09-18 02:51:58 +00:00
Anders Carlsson 7a8a74f704 Handle mangling of TemplateSpecializationType.
llvm-svn: 82189
2009-09-18 02:42:01 +00:00
Nick Kledzik e80d44c943 update make rules so libcompiler-rt can be built for armv6 the Apple way
llvm-svn: 82185
2009-09-18 00:09:05 +00:00
Nick Kledzik 4efa121e40 add support for __switch* needed for switch statements in thumb codegen
llvm-svn: 82184
2009-09-18 00:07:52 +00:00
Fariborz Jahanian 2e32ddc7ba Fixed a bug in generation of the new write-barriers when
array syntax is used to derefernce and assign to ivar pointee.

llvm-svn: 82183
2009-09-18 00:04:00 +00:00
Chris Lattner 7fc4ad6a63 make this testcase check darwin32 also
llvm-svn: 82182
2009-09-17 23:56:41 +00:00
Chris Lattner 2ba262b7e8 rename test
llvm-svn: 82181
2009-09-17 23:55:12 +00:00
Chris Lattner 1bd81314e7 tolerate llvm.eh.selector.i64 on 32-bit systems and llvm.eh.selector.i32 on
64-bit systems.

llvm-svn: 82180
2009-09-17 23:54:54 +00:00
Chris Lattner bf2fd768f9 convert to filecheck
llvm-svn: 82179
2009-09-17 23:54:26 +00:00
Chris Lattner 4a1c8fc061 rename file
llvm-svn: 82178
2009-09-17 23:42:06 +00:00
Julien Lerouge f2a0d7364b Use __attribute__((__used__)) if GCC >= 3.1 (seems to be the oldest GCC
supporting this attribute).

llvm-svn: 82177
2009-09-17 23:27:10 +00:00
Devang Patel dda1ab44e0 A testcase!
llvm-svn: 82176
2009-09-17 23:05:07 +00:00
Devang Patel ea8a4b984c Fix parsing of optional metadata for 'load', 'store' and 'alloc' instructions.
llvm-svn: 82175
2009-09-17 23:04:48 +00:00
Mike Stump 6b574afc3a Fix typo.
llvm-svn: 82170
2009-09-17 21:46:24 +00:00
Douglas Gregor 2436e7116b Initial implementation of a code-completion interface in Clang. In
essence, code completion is triggered by a magic "code completion"
token produced by the lexer [*], which the parser recognizes at
certain points in the grammar. The parser then calls into the Action
object with the appropriate CodeCompletionXXX action.

Sema implements the CodeCompletionXXX callbacks by performing minimal
translation, then forwarding them to a CodeCompletionConsumer
subclass, which uses the results of semantic analysis to provide
code-completion results. At present, only a single, "printing" code
completion consumer is available, for regression testing and
debugging. However, the design is meant to permit other
code-completion consumers.

This initial commit contains two code-completion actions: one for
member access, e.g., "x." or "p->", and one for
nested-name-specifiers, e.g., "std::". More code-completion actions
will follow, along with improved gathering of code-completion results
for the various contexts.

[*] In the current -code-completion-dump testing/debugging mode, the
file is truncated at the completion point and EOF is translated into
"code completion".

llvm-svn: 82166
2009-09-17 21:32:03 +00:00
Mike Stump faacf018a3 Fix typo.
llvm-svn: 82164
2009-09-17 21:15:00 +00:00
John McCall 26a96b0369 Fix a few places where PointerIntPair was using PointerLikeTypeTraits<PointerTy>
instead of the PtrTraits provided.  Allows PointerIntPair to contain a
PointerUnion safely, as long as the bits add up.

llvm-svn: 82163
2009-09-17 20:35:18 +00:00
Dan Gohman 691a0c45d2 Add an svn:ignore.
llvm-svn: 82162
2009-09-17 20:12:05 +00:00
Daniel Dunbar ecac0a408c Tweak clang testing.
- Move CMake to using the new test runner.

 - Switch Makefiles to use the lit.site.cfg.in template.

 - Remove explicit --path arguments, instead this gets written into the site
   configuration. This means running lit from the command line should use the
   exact same configuration as is used in 'make test', assuming it can find the
   site configuration file. You still need to run 'make test' (or the cmake
   build target equivalent) at least once.

llvm-svn: 82160
2009-09-17 19:55:53 +00:00
Douglas Gregor 4f15f4dec1 Merge uninstantiated default arguments more carefully, and try not to
complain about specializations of member functions that are not
definitions. Fixes PR4995.

llvm-svn: 82159
2009-09-17 19:51:30 +00:00
Chris Lattner a6ebba270d pass machinemoduleinfo down into getSymbolForDwarfGlobalReference,
currently unused.

llvm-svn: 82157
2009-09-17 18:49:52 +00:00
Steve Naroff 3aa2d7300b Add clang_disposeTranslationUnit() and clang_disposeIndex().
llvm-svn: 82154
2009-09-17 18:33:27 +00:00
Dan Gohman 36bad00bef Teach ScalarEvolution how to reason about no-wrap flags on loops
where the induction variable has a non-unit stride, such as {0,+,2}, and
there are expressions such as {1,+,2} inside the loop formed with
or or add nsw operators.

llvm-svn: 82151
2009-09-17 18:05:20 +00:00
Jim Grosbach 9632c14949 grammar
llvm-svn: 82150
2009-09-17 17:57:26 +00:00
Jim Grosbach d0928e8cb5 grammar
llvm-svn: 82149
2009-09-17 17:55:55 +00:00
Daniel Dunbar 0ec4ed7b74 Another try at fixing compile warnings on 4.0
llvm-svn: 82148
2009-09-17 17:46:53 +00:00
Daniel Dunbar 2f5c75e17d ARM: Incremental improvement to preprocessor defines.
- Based on patch by Shantonu.

llvm-svn: 82147
2009-09-17 16:21:10 +00:00
Anders Carlsson ca51ef156b Ignore extern "C++" { } when mangling.
llvm-svn: 82146
2009-09-17 16:12:20 +00:00
Benjamin Kramer 5ff90ed33e Initialize HasMetadata to zero.
llvm-svn: 82145
2009-09-17 14:51:57 +00:00
Daniel Dunbar 51418c3b90 Force triple for tests using __strong.
llvm-svn: 82133
2009-09-17 07:21:40 +00:00
Daniel Dunbar 1da76c4e58 Add ARM register names and aliases.
- Patch by Shantonu Sen!

<rdar://problem/6922650> clang doesn't know about ARM registers for inline asm clobber lists

llvm-svn: 82132
2009-09-17 07:03:19 +00:00
Daniel Dunbar 58f7833cfb Driver: Change -O to mean -O2, -O1 is meaningless.
llvm-svn: 82131
2009-09-17 06:53:36 +00:00
Daniel Dunbar 94cb6144d2 Remove test cases using -regalloc=simple.
llvm-svn: 82130
2009-09-17 06:37:07 +00:00
Daniel Dunbar 687fa86a30 Fix two crashes on value dependent expressions (shift and null-pointer check).
- Doug, please check.

 - PR4940.

llvm-svn: 82129
2009-09-17 06:31:27 +00:00
Daniel Dunbar 4782a6ead5 Remove trailing whitespace.
llvm-svn: 82128
2009-09-17 06:31:17 +00:00
Evan Cheng 4ba30d9913 Remove simple regalloc. It has bit rotted.
llvm-svn: 82127
2009-09-17 05:48:07 +00:00
Daniel Dunbar 33f811e920 Add a bunch of math builtins, #include <cmath> passes now.
llvm-svn: 82126
2009-09-17 05:45:52 +00:00
Anders Carlsson f96da57adb Revert r82123 for now.
llvm-svn: 82125
2009-09-17 05:31:47 +00:00
Anders Carlsson 93b6d5e85e Temporary band-aid for handling empty classes somewhat better.
llvm-svn: 82124
2009-09-17 04:42:56 +00:00
Anders Carlsson 49fe8b4f97 Treat an unqualified RecordType as a RecordDecl when substituting.
llvm-svn: 82123
2009-09-17 04:38:23 +00:00
Anders Carlsson 4245bf9e13 Substitution for prefixes.
llvm-svn: 82122
2009-09-17 04:16:28 +00:00