Chris Lattner
94dfae248b
Update clang for the add ->add/fadd split. Likewise for sub and mul.
...
llvm-svn: 73604
2009-06-17 06:36:24 +00:00
Anders Carlsson
58a9b0eafe
Remove all non-const getters from TemplateArgumentList.
...
llvm-svn: 73589
2009-06-17 00:35:01 +00:00
Fariborz Jahanian
5b130a56fd
Place -Wreadonly-setter-attrs under -Wmost option group.
...
llvm-svn: 73585
2009-06-17 00:06:21 +00:00
Douglas Gregor
dca24385f3
If any tests fail, the test runner returns a status code of 1
...
llvm-svn: 73584
2009-06-16 23:40:23 +00:00
Douglas Gregor
ffbc629cd7
Make these driver tests do the right thing even when MACOSX_DEPLOYMENT_TARGET is set.
...
llvm-svn: 73583
2009-06-16 23:37:56 +00:00
Daniel Dunbar
10978e414c
Stub out printing of the thread model with -v.
...
- Turns out libstdcxx greps for this in configure.
llvm-svn: 73582
2009-06-16 23:32:58 +00:00
Daniel Dunbar
1b3ec3a000
Fake support for -print-multi-*
...
- I think we will eventually need to support this for realz, and some build
processes seem to depend on these options.
llvm-svn: 73581
2009-06-16 23:25:22 +00:00
Anders Carlsson
655908aaf7
Since integral template arguments can't have dependent types we don't need an extra pass to set the right APSInt bit width/signedness.
...
llvm-svn: 73580
2009-06-16 23:08:29 +00:00
Ted Kremenek
b538e7b64f
Add utility method GRStateRef::makeWithStore().
...
llvm-svn: 73576
2009-06-16 22:55:21 +00:00
Anders Carlsson
3a106e0b1c
Make DeduceNonTypeTemplateArgument take an APSInt instead of an APInt.
...
llvm-svn: 73574
2009-06-16 22:44:31 +00:00
Ted Kremenek
4533a55696
RegionStoreManager:
...
- Add "sections" to RegionStoreManager.cpp to delineate functionality.
- Add new function "CreateFieldsOnlyRegionStoreManager" that uses the new
RegionStoreFeatures class to use a reduced set of features from
RegionStoreManager (in this case, only field-sensitivity). This isn't
completely hooked up yet.
llvm-svn: 73572
2009-06-16 22:36:44 +00:00
Douglas Gregor
b4fd5b03c9
Make the clang executable target depend on clang-cc
...
llvm-svn: 73568
2009-06-16 22:26:26 +00:00
Douglas Gregor
71544dba9d
Don't warn about -Winvalid-pch or -Wno-invalid-pch. Since we don't
...
search for PCH files that correspond to header inclusions, this option
does not make sense. Fixes <rdar://problem/6970322>.
llvm-svn: 73563
2009-06-16 22:06:52 +00:00
Daniel Dunbar
2d5f363d6d
Fix typo in prev commit.
...
llvm-svn: 73556
2009-06-16 21:46:01 +00:00
Daniel Dunbar
79c459932b
Darwin/Driver: Also look at -arch command line options when finding the default
...
tool chain.
llvm-svn: 73555
2009-06-16 21:39:33 +00:00
Ted Kremenek
dc935e99e2
Add IOKit test cases for retain/release checker.
...
llvm-svn: 73549
2009-06-16 20:44:39 +00:00
Douglas Gregor
274a6b4f2d
Update Clang to include the InitializeAllTargets and
...
InitializeAllAsmPrinters LLVM headers. Also includes some minor fixes
for the CMake-based build with Xcode.
llvm-svn: 73544
2009-06-16 20:13:51 +00:00
Chris Lattner
392da9c56d
simplify .td file
...
llvm-svn: 73542
2009-06-16 20:04:21 +00:00
Fariborz Jahanian
4be3f263c7
Add -Wundeclared-selector to -Wmost options group.
...
llvm-svn: 73524
2009-06-16 18:20:59 +00:00
Devang Patel
9fc4341eec
It is possible that main input file does not have any symbol with debug info. To handle this edge case, always create main compile unit first.
...
This fixes PR 4228.
llvm-svn: 73520
2009-06-16 18:02:02 +00:00
Fariborz Jahanian
bada785729
Test case was left behind from my last patch.
...
llvm-svn: 73519
2009-06-16 17:57:28 +00:00
Ted Kremenek
50d131dea1
Update checker build.
...
llvm-svn: 73518
2009-06-16 17:45:57 +00:00
Chris Lattner
943658f00b
testcase for r72869, it turns out that it happens in Ruby.
...
llvm-svn: 73514
2009-06-16 17:39:02 +00:00
Chris Lattner
651a221cc2
follow-on to my patch: some targets (like sparc) do not
...
have target-specific builtins, and do not set the count.
Just default to 0 for these targets.
llvm-svn: 73510
2009-06-16 17:27:50 +00:00
Fariborz Jahanian
0571d9bbba
Implements -Wundeclared-selector for ObjC.
...
llvm-svn: 73495
2009-06-16 16:25:00 +00:00
Chris Lattner
2811a257f1
remove extraneous diff.
...
llvm-svn: 73494
2009-06-16 16:22:49 +00:00
Chris Lattner
4ef49c1d6e
my refactoring of builtins changed target-specific builtins to only be
...
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.
llvm-svn: 73492
2009-06-16 16:18:48 +00:00
Zhongxing Xu
838a0db0ba
Use canonical type for building ElementRegion. Otherwise ElementRegions cannot
...
be unique.
llvm-svn: 73482
2009-06-16 09:55:50 +00:00
Zhongxing Xu
e531f048f8
Do not invalidate unboundable regions in GRSimpleVals::EvalCall().
...
llvm-svn: 73474
2009-06-16 06:18:21 +00:00
Anders Carlsson
a42ab8f3d5
Handle temporaries in default arguments.
...
llvm-svn: 73462
2009-06-16 03:37:31 +00:00
Anders Carlsson
90036dc96a
Keep track of whether a type parameter type is a parameter pack.
...
llvm-svn: 73452
2009-06-16 00:30:48 +00:00
Steve Naroff
853308d89d
Add a comment to Sema::ActOnTranslationUnitScope().
...
llvm-svn: 73450
2009-06-16 00:20:10 +00:00
Chris Lattner
49ffbb73ce
accept and ignore -Wdiv-by-zero
...
llvm-svn: 73446
2009-06-15 23:45:43 +00:00
Ted Kremenek
96aa146d90
Fix: <rdar://problem/6945561> -[CIContext createCGLayerWithSize:info:] misinterpreted by clang scan-build
...
llvm-svn: 73415
2009-06-15 20:58:58 +00:00
Ted Kremenek
3092e9c5c2
Fix: <rdar://problem/6961230> add knowledge of IOKit functions to retain/release checker
...
llvm-svn: 73411
2009-06-15 20:36:07 +00:00
Douglas Gregor
baafda8394
Tweak the C++ open projects page
...
llvm-svn: 73409
2009-06-15 19:53:21 +00:00
Eli Friedman
dd2ab963de
PR4395: Don't detect token concatenation in C mode for
...
C++-specific tokens.
llvm-svn: 73408
2009-06-15 19:48:50 +00:00
Anders Carlsson
ebf5be8db9
Include <limits>
...
llvm-svn: 73403
2009-06-15 19:08:31 +00:00
Douglas Gregor
f39bf33dc0
More XML output support, from Olaf Krzikalla!
...
llvm-svn: 73402
2009-06-15 19:02:54 +00:00
Anders Carlsson
475501b01c
More parameter pack work.
...
llvm-svn: 73395
2009-06-15 17:56:45 +00:00
Ted Kremenek
a1cc273ab3
Revert r73341.
...
llvm-svn: 73393
2009-06-15 17:23:35 +00:00
Daniel Dunbar
e16b80cb83
More [basic.lookup.unqual] tests.
...
- p13 and p14 are important failures.
llvm-svn: 73392
2009-06-15 17:18:42 +00:00
Anders Carlsson
bc34391f04
Add a new 'Pack' argument kind to TemplateArgument. This is not yet used.
...
llvm-svn: 73391
2009-06-15 17:04:53 +00:00
Douglas Gregor
15e08d8567
Base SFINAE error suppression counting on the class of an error, not
...
its (possibly-remapped) diagnostics. Thanks, Chris!
llvm-svn: 73390
2009-06-15 16:52:15 +00:00
Douglas Gregor
ac1798a859
Note that we've implemented the right angle brackets extension in C++0x
...
llvm-svn: 73389
2009-06-15 16:50:45 +00:00
Daniel Dunbar
9e2bd8a572
Test for [basic.lookup.unqual]p3
...
- Failing, at least in part, because lookup in parser is finding a friend
function where it shouldn't.
llvm-svn: 73388
2009-06-15 15:56:08 +00:00
Zhongxing Xu
a2937bc3cb
'not magic' => 'is not magic'
...
llvm-svn: 73386
2009-06-15 13:22:32 +00:00
Eli Friedman
b188455eb2
PR4388: get rid of an extra # line directive; in addition to being
...
unnecessary, this was causing issues for assembler-with-cpp mode, which
doesn't process the directive.
llvm-svn: 73382
2009-06-15 09:57:52 +00:00
Chris Lattner
6ed7d5964e
Minor tweak to -fdiagnostics-print-source-range-info to make it print
...
ranges more similar to the console output. Consider:
#define FOO(X, Y) X/ Y
void foo(int *P, int *Q) {
FOO(P, Q);
}
Before we emitted:
t.c:4:3:{4:3-4:6}{4:3-4:6}: error: invalid operands to binary expression ('int *' and 'int *')
FOO(P, Q);
^~~~~~~~~
...
Note that while we underline the macro args that the range info just includes FOO
without its macros. This change teaches the printed ranges to include macro args
also so that we get:
t.c:4:3:{4:3-4:12}{4:3-4:12}: error: invalid operands to binary expression ('int *' and 'int *')
FOO(P, Q);
^~~~~~~~~
...
This fixes rdar://6939599
llvm-svn: 73378
2009-06-15 05:18:27 +00:00
Chris Lattner
d9efb6ee52
Fix #pragma GCC system_header by making it insert a virtual linemarker into
...
the file at the point of the pragma. This allows clang to know that all
sourcelocations after the pragma are in a system header.
llvm-svn: 73376
2009-06-15 05:02:34 +00:00
Chris Lattner
2228a1ee61
rename test
...
llvm-svn: 73375
2009-06-15 05:00:02 +00:00
Chris Lattner
77eb1d5333
convert this test to -verify mode.
...
llvm-svn: 73374
2009-06-15 04:59:21 +00:00
Chris Lattner
d20dc87009
If PCH refers to a file that doesn't exist anymore, emit a nice error
...
like:
fatal error: could not find file '1.h' referenced by PCH file
instead of aborting with an assertion failure, PR4219
llvm-svn: 73371
2009-06-15 04:35:16 +00:00
Chris Lattner
6b8f78eb03
use the new Path::isAbsolute function, fixing a fixme. Patch by Gregory Curfman!
...
llvm-svn: 73370
2009-06-15 04:25:18 +00:00
Chris Lattner
a5e67757dc
no really, add the lines :)
...
llvm-svn: 73367
2009-06-15 04:08:28 +00:00
Chris Lattner
f2d49da9a8
Fix PR2741 by making our newline tracking be aware of newlines that
...
can occur in the middle of comment tokens.
llvm-svn: 73365
2009-06-15 01:25:23 +00:00
Chris Lattner
c7d2bfacef
"GCC emits an __objc_class_name_{classname} symbol for every class, and a corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly."
...
Patch by David Chisnall!
llvm-svn: 73364
2009-06-15 01:09:11 +00:00
Eli Friedman
1cf2536d6c
PR4391: Tweak -ast-print output to generate valid output for edge cases
...
like "int x = + +3;".
llvm-svn: 73356
2009-06-14 22:39:26 +00:00
Eli Friedman
6282b3cff8
PR4390: Make sure to handle anonymous unions correctly while building
...
static intializers for structs.
llvm-svn: 73349
2009-06-14 21:41:37 +00:00
Fariborz Jahanian
45da0c9013
Test modification.
...
Patch by Jean-Daniel Dupas
llvm-svn: 73343
2009-06-14 16:45:35 +00:00
Nuno Lopes
52c17e7201
fix the menu's links
...
llvm-svn: 73341
2009-06-14 09:40:09 +00:00
Douglas Gregor
e141633f55
Introduce a SFINAE "trap" that keeps track of the number of errors
...
that were suppressed due to SFINAE. By checking whether any errors
occur at the end of template argument deduction, we avoid the
possibility of suppressing an error (due to SFINAE) and then
recovering so well that template argument deduction never detects that
there was a problem. Thanks to Eli for the push in this direction.
llvm-svn: 73336
2009-06-14 08:02:22 +00:00
Douglas Gregor
33834516f3
Update LLVM.
...
Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:
- If we are in a template argument deduction context, any diagnostic
that is considered a SFINAE error (or warning) will be
suppressed. The error will be propagated up the call stack via the
normal means.
- By default, all warnings and errors are SFINAE errors. Add the
NoSFINAE class to a diagnostic in the .td file to make it a hard
error (e.g., for access-control violations).
Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.
llvm-svn: 73332
2009-06-14 07:33:30 +00:00
Nick Lewycky
be42c11118
Fix "for all intensive purposes" to "for all intents and purposes".
...
llvm-svn: 73323
2009-06-14 04:08:08 +00:00
Eli Friedman
334046a134
PR4351: Add constant evaluation for constructs like "foo == NULL", where
...
foo has a constant address.
llvm-svn: 73321
2009-06-14 02:17:33 +00:00
Chris Lattner
15ba94987a
Sink the BuiltinInfo object from ASTContext into the
...
preprocessor and initialize it early in clang-cc. This
ensures that __has_builtin works in all modes, not just
when ASTContext is around.
llvm-svn: 73319
2009-06-14 01:54:56 +00:00
Chris Lattner
5abdec7978
move the various builtins stuff from libast to libbasic. This
...
fixes a layering violation in lib/Basic/Targets.cpp.
llvm-svn: 73318
2009-06-14 01:05:48 +00:00
Chris Lattner
3d4ead17c7
prune #includes, Builtins.h/cpp no longer depends on libast.
...
llvm-svn: 73317
2009-06-14 00:52:07 +00:00
Chris Lattner
ecd79c6353
move GetBuiltinType from Builtin::Context to ASTContext.
...
llvm-svn: 73316
2009-06-14 00:45:47 +00:00
Chris Lattner
8e3eed0890
change ParseStatementOrDeclaration to emit the 'missing ;' with
...
ExpectAndConsume instead of custom diag logic. This gets us an
insertion hint and positions the ; at the end of the line
instead of on the next token. Before:
t.c:5:1: error: expected ';' after return statement
}
^
after:
t.c:4:11: error: expected ';' after return statement
return 4
^
;
llvm-svn: 73315
2009-06-14 00:23:56 +00:00
Chris Lattner
34a9566c8c
improve localizability by not passing english phrases into
...
diagnostics in some cases.
llvm-svn: 73314
2009-06-14 00:07:48 +00:00
Chris Lattner
d50fea52af
Simplify mangleFunctionDecl by unnesting a crazy condition. This fixes
...
the check for extern "c" system headers, which should prevent functiondecls
from being mangled.
llvm-svn: 73311
2009-06-13 23:34:16 +00:00
Chris Lattner
a744527773
add a handy predicate.
...
llvm-svn: 73310
2009-06-13 23:31:51 +00:00
Eli Friedman
3192cc8526
Fix the calling convention for structs/unions containing SSE vectors on
...
x86-32. This is slightly messy, but I think it's consistent with gcc.
llvm-svn: 73306
2009-06-13 21:37:10 +00:00
Chris Lattner
b3c4fb5cac
declare an 'operator delete' to match operator new, this avoids many many
...
warnings when building with VC++, patch by AlisdairM!
llvm-svn: 73305
2009-06-13 20:51:38 +00:00
Chris Lattner
084776d08b
fix typo
...
llvm-svn: 73304
2009-06-13 20:35:58 +00:00
Daniel Dunbar
2f554fadcd
Don't include system headers when overriding triple.
...
llvm-svn: 73301
2009-06-13 20:02:26 +00:00
Daniel Dunbar
c0467f36f2
Force Obj-C runtime version for this test
...
llvm-svn: 73300
2009-06-13 19:40:25 +00:00
Daniel Dunbar
c54e242fb4
Switch to the new test runner.
...
- TestRunner.sh still needs to be moved over.
- Please let me know if you find problems / missing features.
llvm-svn: 73298
2009-06-13 18:28:48 +00:00
Anders Carlsson
40c1d49615
Have CheckClassTemplatePartialSpecializationArgs take a TemplateArgumentListBuilder. No functionality change.
...
llvm-svn: 73297
2009-06-13 18:20:51 +00:00
Chris Lattner
60ac6b9dce
a couple minor tweaks
...
llvm-svn: 73296
2009-06-13 18:11:10 +00:00
Eli Friedman
9782caa369
Allow initializing a vector with a vector in addition to allowing a list
...
of the elements. Issue reported on cfe-dev by Mattias Holm.
llvm-svn: 73292
2009-06-13 10:38:46 +00:00
Chris Lattner
b6f77af532
implement and document a new __has_feature and __has_builtin magic
...
builtin preprocessor macro. This appears to work with two caveats:
1) builtins are registered in -E mode, and 2) target-specific builtins
are unconditionally registered even if they aren't supported by the
target (e.g. SSE4 builtin when only SSE1 is enabled).
llvm-svn: 73289
2009-06-13 07:13:28 +00:00
Douglas Gregor
a5d5c749b1
Move a bunch of tests into temp.param, and write a few tests for paragraphs that hadn't been touched before
...
llvm-svn: 73288
2009-06-13 06:59:07 +00:00
Daniel Dunbar
4be788c56a
Add some random C++ standard tests.
...
llvm-svn: 73287
2009-06-13 06:16:36 +00:00
Douglas Gregor
7a1095f243
Add the structure for a C++ test suite that mimics the structure of the C++ standard
...
llvm-svn: 73286
2009-06-13 06:06:53 +00:00
Eli Friedman
9a0e23c495
Fix for PR4382: allow instantiating dependent nested name specifiers.
...
I'm not completely sure this is the right way to fix this issue, but it seems
reasonable, and it's consistent with the non-template code for this
construct.
llvm-svn: 73285
2009-06-13 04:51:30 +00:00
Anders Carlsson
20ee0ed4ea
If a CXXRecordDecl is a class template, the 'this' type should be the injected class name type. Fixes pr4383.
...
llvm-svn: 73284
2009-06-13 02:59:33 +00:00
Anders Carlsson
15201f19ba
More work on type parameter packs.
...
llvm-svn: 73281
2009-06-13 02:08:00 +00:00
Zhongxing Xu
70b27e6f8b
Stop tracking non-compound value for struct. It may be caused by imprecise cast
...
logic.
llvm-svn: 73279
2009-06-13 01:31:11 +00:00
Douglas Gregor
4f024b2046
Remove a bunch of unnecessary template argument deduction code that was
...
obviously written by someone who didn't read C++ [temp.class.spec].
llvm-svn: 73276
2009-06-13 00:59:32 +00:00
Anders Carlsson
c8cbb2d08c
Move template type argument checking out into a separate function. No functionality change.
...
llvm-svn: 73275
2009-06-13 00:33:33 +00:00
Douglas Gregor
91772d1d76
When some template parameters of a class template partial
...
specialization cannot be deduced, produce a warning noting that the
affected class template partial specialization will never be used.
llvm-svn: 73274
2009-06-13 00:26:55 +00:00
Chris Lattner
4ca97c3b9e
Fix PR4372, another case where non-prototyped functions can prevent
...
always_inline from working.
llvm-svn: 73273
2009-06-13 00:26:38 +00:00
Anders Carlsson
aa73b9135a
Improvements to TemplateArgumentListBuilder to make it work better with parameter packs.
...
llvm-svn: 73272
2009-06-13 00:08:58 +00:00
Anders Carlsson
327865db53
A parameter pack must always come last in a class template.
...
llvm-svn: 73269
2009-06-12 23:20:15 +00:00
Anders Carlsson
508caaec3b
No need to mark the parameter as invalid, just ignore the default argument.
...
llvm-svn: 73268
2009-06-12 23:13:22 +00:00
Anders Carlsson
f986ba7528
Address more comments from Doug.
...
llvm-svn: 73267
2009-06-12 23:09:56 +00:00
Chris Lattner
815b70efcd
add the location of the ')' in a do/while statement to DoStmt.
...
This fixes a source range problem reported by Olaf Krzikalla.
llvm-svn: 73266
2009-06-12 23:04:47 +00:00
Anders Carlsson
15f1dd1c88
Address comments from Doug - Add a Sema::SemaRef.BuildBlockPointerType and use it.
...
llvm-svn: 73264
2009-06-12 22:56:54 +00:00