Commit Graph

677 Commits

Author SHA1 Message Date
Alexis Hunt 3bc72c1ec2 Reapply r158700 and fixup patches, minus one hunk that slipped through and
caused a crash in an obscure case. On the plus side, it caused me to catch
another bug by inspection.

llvm-svn: 158767
2012-06-19 23:57:03 +00:00
Jakob Stoklund Olesen e1c0ae6fda Revert r158700 and dependent patches r158716, r158717, and r158731.
The original r158700 caused crashes in the gcc test suite,
g++.abi/vtable3a.C among others. It also caused failures in the libc++
test suite.

llvm-svn: 158749
2012-06-19 21:48:43 +00:00
Alexis Hunt 6f832c5733 Remove redundant uses of SmallString
llvm-svn: 158731
2012-06-19 18:12:18 +00:00
Alexis Hunt abc99d8d04 Stop abusing StringRef. Fixes the Windows build.
I've also removed the duplicate check for PARSED_ATTR since it seems
unnecessary, and would have made the code more complicated.

llvm-svn: 158716
2012-06-19 13:36:02 +00:00
Alexis Hunt 7b28cdb3da Improve the specification of spellings in Attr.td.
Note that this is mostly a structural patch that handles the change from the old
spelling style to the new one. One consequence of this is that all AT_foo_bar
enum values have changed to not be based off of the first spelling, but rather
off of the class name, so they are now AT_FooBar and the like (a straw poll on
IRC showed support for this). Apologies for code churn.

Most attributes have GNU spellings as a temporary solution until everything else
is sorted out (such as a Keyword spelling, which I intend to add if someone else
doesn't beat me to it). This is definitely a WIP.

I've also killed BaseCheckAttr since it was unused, and I had to go through
every attribute anyway.

llvm-svn: 158700
2012-06-19 03:39:03 +00:00
Alexis Hunt a0e54d453b Handle C++11 attribute namespaces automatically.
Now, as long as the 'Namespaces' variable is correct inside Attr.td, the
generated code will correctly admit a C++11 attribute only when it has the
appropriate namespace(s).

llvm-svn: 158661
2012-06-18 16:13:52 +00:00
Jakob Stoklund Olesen 995e0e13fa Make clang-tblgen backends functions instead of TableGenBackends.
Get rid of a bunch of header files. TableGen output should be unaffected.

Patch by Sean Silva!

llvm-svn: 158388
2012-06-13 05:12:41 +00:00
Anna Zaks d60367b893 [analyzer] Use "issue hash" in CmpRuns; followup on r158180
(For the future: It would be more efficient to produce a hash key with
the embedded function info inside the compiler.)

llvm-svn: 158187
2012-06-08 01:50:49 +00:00
Douglas Gregor cb8cf4916f Minor comments and changes to clang-completion-mode.el, from David Wood!
llvm-svn: 158174
2012-06-07 22:33:29 +00:00
Jordan Rose dc191a184f [analyzer] SATestBuild should execute SVN updates even if Verbose is off.
Also, re-use glob results when looking for failure logs.

llvm-svn: 157817
2012-06-01 16:24:43 +00:00
Jordan Rose 01ac57244c [analyzer] Fix SATestAdd to work with SATestBuild.
Also, eliminate global 'IsReferenceBuild' in SATestBuild. It doesn't get
passed around that much.

llvm-svn: 157816
2012-06-01 16:24:38 +00:00
Aaron Ballman f4f486f732 Updating the visualizers to include more datatypes. Patch thanks to Jay Blanchard.
llvm-svn: 157763
2012-05-31 19:27:30 +00:00
Jim Grosbach 6acd46f5e9 TableGen: Remove extraneous '\' at EOL in generated tests.
llvm-svn: 157700
2012-05-30 18:18:29 +00:00
Ted Kremenek f5958eb2b4 Fix typo.
llvm-svn: 157229
2012-05-22 00:54:40 +00:00
Ted Kremenek c53ed2e158 Use Perl prototypes instead of shift.
llvm-svn: 157228
2012-05-22 00:52:49 +00:00
Ted Kremenek 2fe1ed3e0d Add basic delta-debugging script used for reducing analyzer crasher test cases.
llvm-svn: 157219
2012-05-21 23:29:01 +00:00
David Blaikie 1f05227a3d SmallString Visual Studio visualizer by Will Wilson.
llvm-svn: 156959
2012-05-16 22:28:47 +00:00
Rafael Espindola 7f90b7d4c2 Fix our handling of visibility in explicit template instantiations.
* Don't copy the visibility attribute during instantiations. We have to be able
  to distinguish

 struct HIDDEN foo {};
 template<class T>
 DEFAULT void bar() {}
 template DEFAULT void bar<foo>();

from

 struct HIDDEN foo {};
 template<class T>
 DEFAULT void bar() {}
 template void bar<foo>();

* If an instantiation has an attribute, it takes precedence over an attribute
  in the template.

* With instantiation attributes handled with the above logic, we can now
  select the minimum visibility when looking at template arguments.

llvm-svn: 156821
2012-05-15 14:09:55 +00:00
Douglas Gregor 87a170c1e6 Teach the parser to deal with multiple spellings for the same
attribute, rather than requiring multiple cases in consumers of this
information.

llvm-svn: 156666
2012-05-11 23:37:49 +00:00
Jim Grosbach 6f855e3024 ARM: Support marking intrinsic definitions as 'unavailable'
llvm-svn: 156490
2012-05-09 18:17:30 +00:00
Richard Smith ce52ca178d Remove DiagGroups from notes, and add a TableGen assertion to catch them.
llvm-svn: 156192
2012-05-04 19:05:50 +00:00
Douglas Gregor 377f99bc68 Replace the StringSwitch in AttributeList::getKind() with a
TableGen-generated StringMatcher, for a 1.2% speedup in -fparse-only
time in <rdar://problem/11004361>. Thanks to Benjamin for pointing me
at StringMatcher!

llvm-svn: 156003
2012-05-02 17:33:51 +00:00
Douglas Gregor 19fbb8fa81 Introduce the notion of 'ignored' attributes, so that all attributes
we accept are not modeled somehow via Attr.td.

llvm-svn: 155998
2012-05-02 16:18:45 +00:00
Douglas Gregor b2daf8416e Introduce the notion of an attribute that has no direct representation
as an AST node, and fold a number of such attributes into Attr.td.

llvm-svn: 155995
2012-05-02 15:56:52 +00:00
Douglas Gregor 0191bf8655 Revert my optimization to AttributeList::getKind() in r155987;
Benjamin has suggested a better approach.

llvm-svn: 155989
2012-05-02 14:50:50 +00:00
Douglas Gregor adfe5afe38 Replace the StringSwitch in AttributeList::getKind(const
IdentifierInfo *) with a static StringMap, improving -fsyntax-only
performance by 1% for the example in <rdar://problem/11004361>.

llvm-svn: 155987
2012-05-02 14:24:30 +00:00
Gabor Greif ec1f7e872c Add a FIXME for uncomplete comment
fix a typo
add punctuation

llvm-svn: 155443
2012-04-24 15:42:03 +00:00
David Blaikie 2e3380308e Add SmallVectorImpl Visual Studio visualizer. Patch by Nikola Smiljanic.
llvm-svn: 155140
2012-04-19 17:26:49 +00:00
Eric Christopher aefeaa9873 Remove the vestiges of the C backend.
llvm-svn: 153308
2012-03-23 05:51:52 +00:00
Aaron Ballman fa432f30d4 Adding namespace qualifiers to the visualizers and improving their behavior.
Patch thanks to Nikola Smiljanic

llvm-svn: 152514
2012-03-10 22:28:45 +00:00
Argyrios Kyrtzidis 8b0f3e0525 [utils/FuzzTest] Add '--stop-on-fail' to stop the script on the first failure
without reverting the changes.

llvm-svn: 152333
2012-03-08 20:29:39 +00:00
Argyrios Kyrtzidis 941d092933 [utils/FuzzTest] The help message says that if you don't specify --max-tests
"the script will run forever continually picking new tests to run", make it so.

llvm-svn: 152327
2012-03-08 20:11:06 +00:00
Argyrios Kyrtzidis 05d2212db3 [utils/FuzzTest] For --filelist the option type is string, not integer.
llvm-svn: 152324
2012-03-08 18:56:59 +00:00
Daniel Dunbar 1c66a0e1c0 Spelling.
llvm-svn: 152281
2012-03-08 01:54:33 +00:00
Michael Han 4a04517329 Refactor Clang sema attribute handling.
This submission improves Clang sema handling by using Clang tablegen
to generate common boilerplate code. As a start, it implements AttributeList
enumerator generation and case statements for AttributeList::getKind.

A new field "SemaHandler" is introduced in Attr.td and by default set to 1
as most of attributes in Attr.td have semantic checking in Sema. For a small
number of attributes that don't appear in Sema, the value is set to 0.

Also there are a small number of attributes that only appear in Sema but not
in Attr.td. Currently these attributes are still hardcoded in Sema AttributeList.

Reviewed by Delesley Hutchins.

llvm-svn: 152169
2012-03-07 00:12:16 +00:00
Argyrios Kyrtzidis 87acf19a5c [tablegen] Make sure that the code that is determining the order of warning groups
is shared to avoid any "misalignment" if indices.

llvm-svn: 152074
2012-03-06 00:00:38 +00:00
Anna Zaks 6ecb6a6b7f [analyzer] Testing: These checkers are not experimental anymore.
llvm-svn: 150989
2012-02-20 21:10:40 +00:00
Benjamin Kramer a8cafe23e3 Store the warning option corresponding to a diagnostics as an index into the option table instead of storing the name.
Another 8 bytes + relocation removed from every diagnostic on x86_64.

llvm-svn: 150615
2012-02-15 20:57:03 +00:00
Anna Zaks a432feaf26 [analyzer] Add the Malloc checker to the list of tested checkers.
llvm-svn: 150535
2012-02-15 00:19:07 +00:00
Dmitri Gribenko 5dc3a6936d Add a script that produces a list of all diagnostics that are defined in
Diagnostic*.td files but not used in sources.

llvm-svn: 150410
2012-02-13 20:21:52 +00:00
Dylan Noblesmith f1a13f29f2 drop more llvm:: prefixes on SmallString<>
More cleanup after r149799.

llvm-svn: 150380
2012-02-13 12:32:26 +00:00
Daniel Dunbar dc51baade4 Remove stray semi-colon.
llvm-svn: 150231
2012-02-10 06:00:29 +00:00
Benjamin Kramer 3edb3b4ac5 Kill the brief and full explanation fields from StaticDiagInfoRec. They were unused and wasted space for nothing.
- per PR11952.

llvm-svn: 150199
2012-02-09 19:38:26 +00:00
Aaron Ballman abc7c5c5b6 Added MSVC visualizers for PointerIntPair and PointerUnions.
Patch by Nikola Smiljanic

llvm-svn: 149896
2012-02-06 20:47:31 +00:00
Benjamin Kramer bf8da9d706 Move instantiateTemplateAttribute into the sema namespace, make helpers static.
llvm-svn: 149864
2012-02-06 11:13:08 +00:00
Anna Zaks 4c1ef976a8 [analyzer] Testing: add automated reference results reset.
llvm-svn: 149682
2012-02-03 06:35:23 +00:00
Anna Zaks 97981bdeb0 [analyzer] Testing: add 2 new checkers to the buildbot script.
llvm-svn: 149514
2012-02-01 16:46:57 +00:00
Anna Zaks b3d896d333 [analyzer] Add the HTML file to the SATest diagnostic diff.
(Uses the functionality which has been in CmpRuns long before.)

llvm-svn: 148868
2012-01-24 21:57:35 +00:00
Anna Zaks 895c312404 [analyzer] Testing: make diagnostic diffs more informative (add
diagnostic message).

llvm-svn: 148867
2012-01-24 21:57:32 +00:00
Anna Zaks a08c6b7efc [analyzer] Unbreak the static analyzer bot. Regression from r148558.
When we build a single source file, we call clang directly (not though scan-build).

llvm-svn: 148612
2012-01-21 01:11:35 +00:00
DeLesley Hutchins 30398dd410 Delayed template instantiation of late-parsed attributes.
llvm-svn: 148595
2012-01-20 22:50:54 +00:00
DeLesley Hutchins ceec3063e2 Instantiate dependent attributes when instantiating templates.
llvm-svn: 148592
2012-01-20 22:37:06 +00:00
Anna Zaks 7a75cf32a2 [analyzer] Tweak the buildbot script to include the experimental taint checker and correct the checker enabling setting.
llvm-svn: 148558
2012-01-20 19:10:59 +00:00
David Blaikie 8a40f700e6 Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it)
llvm-svn: 148292
2012-01-17 06:56:22 +00:00
David Blaikie f47fa304a4 Remove unnecessary default cases in switches over enums.
This allows -Wswitch-enum to find switches that need updating when these enums are modified.

llvm-svn: 148281
2012-01-17 02:30:50 +00:00
Jakob Stoklund Olesen 6f2288b67c CodeInit was replaced by StringInit.
llvm-svn: 148095
2012-01-13 04:57:47 +00:00
Anna Zaks de1f7f8bfb [analyzer] Testing infrastructure: Flush output after every print
statement.

llvm-svn: 147862
2012-01-10 18:10:25 +00:00
Benjamin Kramer 4fde7a8007 Remove unused include of VectorExtras.h.
llvm-svn: 147737
2012-01-07 19:41:22 +00:00
Anna Zaks 5acd9603da [analyzer] Correct the error message in the testing infrastructure.
llvm-svn: 147568
2012-01-04 23:53:50 +00:00
Bob Wilson bd646de67f Relax type checking for a few Neon intrinsics. <rdar://problem/10538555>
Not long ago, I tightened up the type checking for pointer arguments of
Neon intrinsics to match the specifications provided by ARM.  One consequence
was that it became impossible to access the unaligned versions of a few
Neon load/store operations.  Since there are just a few of these intrinsics
where it makes a difference, I think it's better to relax the type checking
than to either introduce new non-standard unaligned intrinsics or to disallow
intrinsics for the unaligned operations.

llvm-svn: 146963
2011-12-20 06:16:48 +00:00
David Blaikie 68e081d606 Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146959
2011-12-20 02:48:34 +00:00
Douglas Gregor 49ccfaa938 Add support for pretty-printing attributes, from Richard Membarth!
llvm-svn: 145002
2011-11-19 19:22:57 +00:00
Bob Wilson 89d14247ff Fix Neon builtin pointer argument checking for "sret" builtins.
The code for checking Neon builtin pointer argument types was assuming that
there would only be one pointer argument.  But, for vld2-4 builtins, the first
argument is a special sret pointer where the result will be stored.  So,
instead of scanning all the arguments to find a pointer, have TableGen figure
out the index of the pointer argument that needs checking.  That's better than
scanning all the arguments regardless.  <rdar://problem/10448804>

llvm-svn: 144834
2011-11-16 21:32:23 +00:00
Benjamin Kramer fee467a0d0 Validate DiagGroup names in TableGen, they're used as command line arguments so we don't want shell meta chars in there.
llvm-svn: 144645
2011-11-15 12:54:53 +00:00
Anna Zaks 26573c5585 [analyzer] Testing: test with all the non-experimental checker packages.
llvm-svn: 144142
2011-11-08 22:41:25 +00:00
Anna Zaks a1b56e2aa3 [analyzer] Testing: support for regenerate reference output
Change the flow of the SATestAdd so that it could be used for regenerating
the reference output without exiting with an error.

llvm-svn: 144141
2011-11-08 22:41:22 +00:00
Anna Zaks 767d356f87 [analyzer] Testing: Display the number of reported differences in the main log.
llvm-svn: 144113
2011-11-08 19:56:31 +00:00
Bob Wilson e4d7723b87 Check pointer types for arguments of Neon load/store macros. rdar://9958031
The Neon load/store intrinsics need to be implemented as macros to avoid
hiding alignment attributes on the pointer arguments, and the macros can
only evaluate those pointer arguments once (in case they have side effects),
so it has been hard to get the right type checking for those pointers.
I tried various alternatives in the arm_neon.h header, but it's much more
straightforward to just check directly in Sema.

llvm-svn: 144075
2011-11-08 05:04:11 +00:00
Bob Wilson 98bc98caa8 Clean up type flags for overloaded Neon builtins. No functional change.
This patch just adds a simple NeonTypeFlags class to replace the various
hardcoded constants that had been used until now.  Unfortunately I couldn't
figure out a good way to avoid duplicating that class between clang and
TableGen, but since it's small and rarely changes, that's not so bad.

llvm-svn: 144054
2011-11-08 01:16:11 +00:00
Anna Zaks ae9d54bcf3 [analyzer] Testing infrastructure: flush the output between projects.
llvm-svn: 144051
2011-11-08 00:27:56 +00:00
Benjamin Kramer 44f91da8cc Use StringRef's case transformation methods.
llvm-svn: 143889
2011-11-06 20:36:48 +00:00
Anna Zaks 84726dd72c [analyzer] Relax the cmp criteria for analyzer reports.
Until we find out a way to easily find out what changed by looking at the logs.

llvm-svn: 143789
2011-11-05 05:20:56 +00:00
Anna Zaks 4720a730f6 [analyzer] Add support for testing with individual preprocessed files.
llvm-svn: 143786
2011-11-05 05:20:48 +00:00
Anna Zaks 42a4463091 [analyzer] Tweak the test script
Rename the pre_run_static_analyzer script into cleanup_run_static_analyzer
and use it to clean up after the reference build - which is done as part of
adding a new project to the system.

llvm-svn: 143568
2011-11-02 20:46:50 +00:00
Chandler Carruth c5d72c103b Update the CMake build for clang-tblgen to reflect that it directly
depends on the Support library rather than relying on TableGen's
transitive dependency.

llvm-svn: 143532
2011-11-02 05:04:43 +00:00
Dan Gohman c8338b1b14 Remove the Alpha backend.
llvm-svn: 143165
2011-10-27 22:56:49 +00:00
Dan Gohman 93127aecb9 Remove the Blackfin backend.
llvm-svn: 142881
2011-10-25 00:06:12 +00:00
Dan Gohman 53bb0ff685 Remove the SystemZ backend.
llvm-svn: 142879
2011-10-24 23:48:52 +00:00
Bob Wilson 3b476aec6d Add __nodebug__ attribute to functions in arm_neon.h
This matches what we do for Intel vector intrinsics. <rdar://problem/10280207>

llvm-svn: 141958
2011-10-14 16:55:33 +00:00
Richard Smith caf3390d44 Constant expression evaluation refactoring:
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
   and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
   behaviour.
 - Factor out evaluation of bitfield bit widths.
 - Fix a few places which would evaluate an expression twice: once to determine
   whether it is a constant expression, then again to get the value.

llvm-svn: 141561
2011-10-10 18:28:20 +00:00
Peter Collingbourne bf8989fd19 Make clang-tblgen's Makefile independent of Clang's top-level Makefile,
to avoid having to make it available for the cross build when it
builds only clang-tblgen.

llvm-svn: 141453
2011-10-08 00:26:35 +00:00
Anna Zaks f0c4116202 [analyzer] Static Analyzer Qualification Infrastructure: Scripts to support basic testing of the analyzer on external projects. This can be used as a basis for setting up a buildbot.
llvm-svn: 141337
2011-10-06 23:26:27 +00:00
Peter Collingbourne bee583fd6e Add the Clang tblgen backends to Clang, and flip the switch to cause
the build systems to use clang-tblgen.

llvm-svn: 141291
2011-10-06 13:03:08 +00:00
Anna Zaks ea8f5725c5 [analyzer] CmpRuns can now optionally delete empty reports.
llvm-svn: 139550
2011-09-12 22:40:36 +00:00
Anna Zaks b80d836137 [analyzer] CmpRuns.cmpScanBuildResults() should be easy to call from other modules.
llvm-svn: 139543
2011-09-12 21:32:41 +00:00
Anna Zaks 03f3598ff1 Rename CmpRuns into CmpRuns.py so that it could be used as a module.
llvm-svn: 139540
2011-09-12 21:07:18 +00:00
Douglas Gregor d99d49c6cb Easier debugging with Visual Studio Visualizers, from Nikola Smiljanic!
llvm-svn: 136207
2011-07-27 05:22:46 +00:00
Chris Lattner 57540c5be0 fix a bunch of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!

llvm-svn: 129559
2011-04-15 05:22:18 +00:00
Douglas Gregor 16ac0ad8b4 Minor fix for clang-completion-mode, from Dve Abrahams
llvm-svn: 121771
2010-12-14 16:52:29 +00:00
Daniel Dunbar 32f1b54b69 utils/ABITest: Factor out type naming code slightly.
llvm-svn: 114867
2010-09-27 20:13:24 +00:00
Daniel Dunbar 1998651529 utils/ABITest: Tweak default bit-field types to cover some more interesting cases.
llvm-svn: 114866
2010-09-27 20:13:22 +00:00
Daniel Dunbar 47dd9c2fc5 utils/ABITest: Add a workaround for mismatches due to PR5579.
llvm-svn: 114865
2010-09-27 20:13:19 +00:00
Daniel Dunbar 22ec2c218c utils/ABITest: Add option to skip individual tests by index.
llvm-svn: 114864
2010-09-27 20:13:17 +00:00
Douglas Gregor c3d6cb6543 Fix typo in test program
llvm-svn: 108298
2010-07-14 00:09:17 +00:00
Daniel Dunbar 3dbd7b51ca FuzzTest: Add support for reading list of replacements from a file.
llvm-svn: 105177
2010-05-30 22:27:55 +00:00
Daniel Dunbar ef261ba507 utils: Add a generic fuzz testing tool.
llvm-svn: 105176
2010-05-30 22:27:52 +00:00
Ted Kremenek 6542feb92c Wrap 'data' key in quotes.
llvm-svn: 101594
2010-04-17 00:37:35 +00:00
Ted Kremenek 9e9dd5c535 Make script actually work.
llvm-svn: 101591
2010-04-17 00:33:24 +00:00
Ted Kremenek bfd5a75b1c Log code completion data in json format.
llvm-svn: 101587
2010-04-17 00:21:44 +00:00
Ted Kremenek 72ac9505f0 Include sender address in completion log.
llvm-svn: 101358
2010-04-15 06:32:15 +00:00
Ted Kremenek ef0ada67f5 Add simple python server for recording code completion timings.
llvm-svn: 101327
2010-04-15 01:02:31 +00:00
Anders Carlsson 5a9754187d More magic.
llvm-svn: 99803
2010-03-29 03:26:49 +00:00
Anders Carlsson 473444e05c Sprinkle some sed dust over check-ztt to make it work with newer clang asm output. (I am not a sed expert so this might be terribly inefficient :)
llvm-svn: 99802
2010-03-29 03:21:40 +00:00
Anders Carlsson e5d78c03c3 Didn't mean to commit this.
llvm-svn: 99607
2010-03-26 04:14:45 +00:00
Anders Carlsson 92d95f2f7b Use the new vtable layout code for construction vtables.
llvm-svn: 99606
2010-03-26 04:13:46 +00:00
Douglas Gregor e50c05244f make the vtable tester a little friendlier, with a clean target and without requiring . to be in your path
llvm-svn: 99433
2010-03-24 21:52:55 +00:00
Douglas Gregor a71cc15361 Implement promotion for enumeration types.
WHAT!?!

It turns out that Type::isPromotableIntegerType() was not considering
enumeration types to be promotable, so we would never do the
promotion despite having properly computed the promotion type when the
enum was defined. Various operations on values of enum type just
"worked" because we could still compute the integer rank of an enum
type; the oddity, however, is that operations such as "add an enum and
an unsigned" would often have an enum result type (!). The bug
actually showed up as a spurious -Wformat diagnostic
(<rdar://problem/7595366>), but in theory it could cause miscompiles.

In this commit:
  - Enum types with a promotion type of "int" or "unsigned int" are
  promotable.
  - Tweaked the computation of promotable types for enums
  - For all of the ABIs, treat enum types the same way as their
  underlying types (*not* their promotion types) for argument passing
  and return values
  - Extend the ABI tester with support for enumeration types

llvm-svn: 95117
2010-02-02 20:10:50 +00:00
Douglas Gregor efbaf99dca Include <stdlib.h>, so that we're sure to get atoi.
llvm-svn: 95095
2010-02-02 17:49:52 +00:00
Daniel Dunbar 4c823ba358 Extern darwin-clang_rt.c test to also test targetting ARM ({armv6, armv7} x
{thumb,no-thumb}).

llvm-svn: 94264
2010-01-23 00:26:38 +00:00
Daniel Dunbar 9e406b4b60 Add a test for clang_rt support on Darwin. With appropriate massaging, this
checks that the runtime library can be linked and works for compiling on 10.6
for 10.{4,5,6} targets. Currently test is only for x86, and misses some
compiler-rt functions.

llvm-svn: 94083
2010-01-21 17:10:39 +00:00
Daniel Dunbar 0b9c603ee2 Tweak OptionalTests paths.
llvm-svn: 94082
2010-01-21 17:09:39 +00:00
Daniel Dunbar d723b01311 Add utils/OptionalTests, a dumping ground for additional (lit) tests which for
one reason or another don't belong in the regular test suite.

Inside is utils/OptionalTests/Extra which is specifically for tests that match
the layout of the regular tests.

llvm-svn: 94080
2010-01-21 16:55:39 +00:00
John McCall 6d11e07b16 Insert clang-flags into the clang command. Currently it needs to be a list;
future work should permit strings (by splitting them into a list o' strings).

llvm-svn: 93299
2010-01-13 06:44:51 +00:00
Mike Stump 4b0e352061 Remove unused code.
llvm-svn: 93262
2010-01-12 22:20:00 +00:00
Mike Stump a77e48c322 Improve covariance tester to randomize the return value more.
llvm-svn: 93254
2010-01-12 20:55:39 +00:00
Mike Stump edd224743c Add covariance tester.
llvm-svn: 93226
2010-01-12 03:01:18 +00:00
Mike Stump ee6dfe55a5 Allow N_FIELDS to be 0.
llvm-svn: 93211
2010-01-12 00:28:59 +00:00
Mike Stump b3ed45b67c Fix indentation.
llvm-svn: 93023
2010-01-08 19:28:41 +00:00
Mike Stump 9620622431 Add in final overrider logic.
llvm-svn: 93022
2010-01-08 19:25:36 +00:00
Mike Stump a52cf2ca3f Add checker for type infos.
llvm-svn: 92956
2010-01-07 22:50:03 +00:00
Mike Stump 0015eb93c6 Add checked for VTTs.
llvm-svn: 92954
2010-01-07 22:28:10 +00:00
Mike Stump 24e9b0048c Detailed vtable checker.
llvm-svn: 92953
2010-01-07 22:21:26 +00:00
Mike Stump 441793352d 1/2 off all structs should not have any virtual functions.
Replace magic numbers with uuids.

llvm-svn: 92941
2010-01-07 20:55:28 +00:00
Mike Stump 2a83635337 Add a descriptive tag to each line to make the exact differences
easier to understand.

llvm-svn: 92932
2010-01-07 19:39:43 +00:00
Mike Stump bd0c5da5fc Don't use two argument mixing function.
llvm-svn: 92929
2010-01-07 19:24:27 +00:00
Mike Stump a771b0ad52 Also generate the .s files.
llvm-svn: 92928
2010-01-07 19:19:39 +00:00
Mike Stump 53b926c56f Add a testcase generator for vtable/rtti testing. WIP.
llvm-svn: 92927
2010-01-07 18:58:28 +00:00
Daniel Dunbar 54f330f342 Tests: Tweak LLVM-Code-Symbols test to ignore common and undefined symbols for
now, let's start small.

llvm-svn: 92170
2009-12-26 22:58:48 +00:00
Daniel Dunbar c19b219280 Sketch a simple new C++Tests suite for checking that llvm-gcc and clang generate
the same visible symbols, useful for finding ABI/Mangler/vtable/etc. issues.

llvm-svn: 92147
2009-12-24 21:27:38 +00:00
Douglas Gregor 53982d577d Don't commit my silly little local changes
llvm-svn: 92010
2009-12-23 17:43:32 +00:00
Douglas Gregor e6600379b1 Fix DISABLE_SMART_POINTERS build
llvm-svn: 92008
2009-12-23 17:40:29 +00:00
Douglas Gregor 39740dce30 Revert accidental commit
llvm-svn: 91930
2009-12-22 22:30:51 +00:00
Douglas Gregor b6ea60872d Switch Sema::AddCXXDirectInitializerToDecl over to InitializationSequence
llvm-svn: 91927
2009-12-22 22:17:25 +00:00
Daniel Dunbar d2d3c7efe3 C++Tests: Add target paths for LLVM-Code-Compile checks as well.
llvm-svn: 91716
2009-12-18 21:27:23 +00:00
Douglas Gregor 95a438b291 Add a couple more paths to the LLVM-Code-Syntax test
llvm-svn: 91627
2009-12-17 21:51:02 +00:00
Douglas Gregor 4881735736 Remove accidental commit containing local paths for the LLVM-Code-Syntax test
llvm-svn: 91326
2009-12-14 20:58:24 +00:00
Douglas Gregor 4f84661c43 Minor cleanups for constructor initialization in InitializationSequence
llvm-svn: 91325
2009-12-14 20:57:13 +00:00
Douglas Gregor 9221e646f5 Switch the Emacs clang-completion-mode over to clang -cc1
llvm-svn: 91185
2009-12-11 23:47:56 +00:00
Daniel Dunbar 520d1e6c6b Update docs/comments/utils/examples to refer to clang -cc1 instead of clang-cc.
llvm-svn: 91176
2009-12-11 23:04:35 +00:00
Douglas Gregor 96156a46e0 Beef up Clang-on-LLVM testing a bit, by making LLVM-Syntax recursive
(since we now parse all of the headers appropriately) and teaching
LLVM-Code-Syntax about the extra paths needed to parse the backends.

llvm-svn: 91068
2009-12-10 22:08:55 +00:00
Daniel Dunbar bdd9669310 Add utils/TestUtils, and sink pch-test.pl there.
Also, add a test for generator a C file with a very deep call stack.

llvm-svn: 90468
2009-12-03 18:40:58 +00:00
Kovarththanan Rajaratnam cb58439f34 Tuck away scan-build related files into tools/scan-build
llvm-svn: 90215
2009-12-01 06:52:01 +00:00
Kovarththanan Rajaratnam 63585ddf9d Move ubiviz to analyzer directory
llvm-svn: 90213
2009-12-01 06:34:06 +00:00
Daniel Dunbar 0ec57ff203 Don't run the LLVM Code tests by default.
llvm-svn: 89937
2009-11-26 05:09:00 +00:00
Daniel Dunbar 9acb35a5e8 Add -Werror for Clang and LLVM on Clang (headers) syntax tests.
llvm-svn: 89936
2009-11-26 05:08:53 +00:00
Douglas Gregor 20d58fbd3a Add C++ tests to try to parse and compile the LLVM libraries
llvm-svn: 89923
2009-11-26 02:28:53 +00:00
Douglas Gregor 4f5d0907b8 Don't try to parse LinkAllParses.h for now
llvm-svn: 89820
2009-11-25 00:31:20 +00:00
Ted Kremenek 4d1907c493 Remove '-checker-simple' reference from scan-build. Patch by Kovarththanan Rajaratnam!
llvm-svn: 89673
2009-11-23 17:37:58 +00:00
Daniel Dunbar baa74770c9 Change Clang-Code-Compile tests to only -emit-llvm instead of running
codegen/as.

llvm-svn: 89634
2009-11-23 00:07:14 +00:00
Daniel Dunbar 5ad7e15698 Add two new C++ lit tests suites, for testing Clang .cpp files with
-fsyntax-only and with -c.

llvm-svn: 88845
2009-11-15 08:10:41 +00:00
Daniel Dunbar 4de54f823b Add Clang-Syntax C++Tests; these don't run by default, use the lit arguments
'--param run_clang_syntax=1' to run them.

llvm-svn: 88839
2009-11-15 07:23:09 +00:00
Daniel Dunbar 1566a2257f Use the other excludes syntax.
llvm-svn: 88836
2009-11-15 07:11:12 +00:00
Ted Kremenek 9f2ee2bb26 Use 'eq' operator, and enable regular experimental checks when --experimental-checks is passed to scan-build.
llvm-svn: 88673
2009-11-13 18:49:48 +00:00
Ted Kremenek 4ef13f8ac9 Add clang-cc option "--analyzer-experimental-internal-checks". This
option enables new "internal" checks that will eventually be turned on
by default but still require broader testing.

llvm-svn: 88671
2009-11-13 18:46:29 +00:00
Douglas Gregor 6af6c3ee56 Turn off -Wsign-compare warnings by default
llvm-svn: 86233
2009-11-06 05:24:12 +00:00
Douglas Gregor 02ba0ea461 When we encounter a derived-to-base conversion when performing an
implicit conversion sequence, check the validity of this conversion
and then perform it.

llvm-svn: 86210
2009-11-06 01:02:41 +00:00
Douglas Gregor 3ec1bf240d Fixed two places where we needed to force completion of a type
(without complaining if it fails) to get proper semantics: reference
binding with a derived-to-base conversion and the enumeration of
constructors for user-defined conversions. There are probably more
cases to fix, but my prior attempt at statically ensuring that
complete-type checking always happens failed. Perhaps I'll try again.

With this change, Clang can parse include/llvm/*.h!

llvm-svn: 86129
2009-11-05 13:06:35 +00:00
Douglas Gregor 8413751fab Experimental, ultra-hacking Emacs minor mode for Clang-based code completion.
llvm-svn: 83681
2009-10-09 22:17:40 +00:00
Ted Kremenek 05e6f5b6e9 Turn on 'RegionStore' as the default store manager both for 'clang --analyze' and 'scan-build'. Leave 'BasicStore' as the default store manager in 'clang-cc'. While there are still known warts with RegionStore, it's ready to be tested by general users.
llvm-svn: 82752
2009-09-25 05:55:59 +00:00
Daniel Dunbar b5cbf77c2e Remove old test runner, this has moved to LLVM/utils/lit and all known clients
have been updated.
 - Please let me know of any problems.

llvm-svn: 82524
2009-09-22 05:16:02 +00:00
Daniel Dunbar be657e5b28 A toy for Doug: Add some 'lit' tests which just run clang++ -fsyntax-only over all the files in a directory.
- 'lit utils/C++Tests' to run, you may need to fix the stdc++ include path, and your mileage may vary.

 - A handful of the LLVM headers are XFAIL because they don't include the right headers.

llvm-svn: 81990
2009-09-16 01:40:13 +00:00
Daniel Dunbar 56b534d2d6 Also compare stdout and stderr lines.
llvm-svn: 81018
2009-09-04 18:35:09 +00:00
Daniel Dunbar 156fa7dde0 Make CmpDriver less stupid.
llvm-svn: 81012
2009-09-04 17:41:47 +00:00
Daniel Dunbar 79ee0fa59c Add a valgrind suppressions file for x86_64-pc-linux-gnu and gcc-4.3.3 which
suppresses the overlapped memcpy in stable_sort that clang triggers.

llvm-svn: 80982
2009-09-04 02:53:57 +00:00
Daniel Dunbar 3009f81d1d Add --vg-arg option to clang test runner.
- Passes additional argument through to valgrind.

Also, don't run valgrind with --leak-check=no by default.

llvm-svn: 80981
2009-09-04 02:53:50 +00:00
Anders Carlsson 115d6bfcac Whoops, did not mean to commit this
llvm-svn: 79201
2009-08-16 20:29:59 +00:00
Anders Carlsson a471db0dd4 Store the delete operator for delete expressions.
llvm-svn: 79200
2009-08-16 20:29:29 +00:00
Benjamin Kramer 312fde6420 lit: flush stdout in no-fancy-progress-bar mode as well.
llvm-svn: 79056
2009-08-14 23:34:45 +00:00
Ted Kremenek d0d7256b8f Pass '-Wno-' options to clang-cc. This fixes <rdar://problem/6943988>.
llvm-svn: 79011
2009-08-14 18:20:50 +00:00
Daniel Dunbar 1a9db99932 Add a simple tool for comparing two static analyzer runs, primarily for use from
buildbot.

llvm-svn: 78336
2009-08-06 21:15:33 +00:00
Daniel Dunbar 4728100e8d Fix locating the 'lit.cfg' file when running on only a single file in the
current directory.

llvm-svn: 78271
2009-08-06 01:41:03 +00:00
Ted Kremenek 36c14a0f1a Renable "html" indexing by default.
llvm-svn: 78077
2009-08-04 17:05:18 +00:00
Daniel Dunbar 83142021fb lit: Some sample tests, for testing the tester
llvm-svn: 78050
2009-08-04 04:40:15 +00:00
Ted Kremenek ba8d7fc6bf Recognize '-M' and '-MM' options.
llvm-svn: 78027
2009-08-04 00:57:12 +00:00
Ted Kremenek 90fc8a492e 'unlink' file directly instead of invoking system shell.
llvm-svn: 78026
2009-08-04 00:55:59 +00:00
Ted Kremenek 90e2e07bd5 Have scan-build clue off of 'BUGMETAEND' to know when to stop processing an HTML file.
llvm-svn: 78022
2009-08-03 23:45:27 +00:00
Daniel Dunbar f0e2ea2869 lit: Don't treat '\' as an escape in unquoted strings, on Win32. This turns out
to not be a very good idea.

llvm-svn: 77957
2009-08-03 05:29:22 +00:00
Ted Kremenek 7ac29bb2d8 Include '-o' arguments in verbose output.
llvm-svn: 77881
2009-08-02 05:42:46 +00:00
Daniel Dunbar 6cfaa47c85 lit: Catch (internal) exceptions when using --no-sh.
llvm-svn: 77830
2009-08-01 23:18:27 +00:00
Daniel Dunbar 5a283bf848 lit: Fix thinko in finding config file.
llvm-svn: 77828
2009-08-01 23:09:12 +00:00
Daniel Dunbar 590c358681 lit: Add internal script execution.
- Off by default, you can test it with the --no-sh argument.

 - For me it works for all but 3 tests, but there a number of FIXMEs and QOI
   issues:  
     o Redirection isn't completely accurate -- in practice it can't portably
       be, but I would like to error out if someone writes something which isn't
       going to work. This is the source of the 3 test failures.

     o Some pipe configurations have the potential to deadlock.

     o It is significantly slower when multithreaded. I believe this is due to
       locking happening under the hood, there is probably some kind of solution
       but I haven't investigated yet.

     o Log output is ugly.

llvm-svn: 77784
2009-08-01 10:18:01 +00:00
Daniel Dunbar 82fa6f5e9d lit: Two more sh lex/parse bugs (but its so simple!)
- Empty arguments weren't handled correctly.
 - Escapes outside quoted strings weren't handled.

llvm-svn: 77783
2009-08-01 09:41:09 +00:00
Daniel Dunbar 1661066e58 lit: Fix two sh lexing bugs.
- '\\\\' inside a "..." string becomes '\\'.
 - The '<' token wasn't being recognized.

llvm-svn: 77777
2009-08-01 05:52:04 +00:00
Daniel Dunbar dc4a0f7427 lit: Fix a name lookup problem, which only occurred on a race condition. This is
why dynamic binding sucks.

llvm-svn: 77773
2009-08-01 04:11:36 +00:00
Daniel Dunbar 3ee0543e67 lit: Pull a few more variables into the TestingConfig object.
llvm-svn: 77772
2009-08-01 04:06:02 +00:00
Daniel Dunbar 5332311370 lit: Don't use threads when only running one test, or with -j 1.
llvm-svn: 77766
2009-08-01 03:35:40 +00:00
Daniel Dunbar 2653167290 MultiTestRunner: Add 'sh' parsing to ShUtil.
llvm-svn: 77765
2009-08-01 03:22:27 +00:00
Daniel Dunbar cd4c338437 MultiTestRunner: Fix invalid warning when pointing 'lit' directly at a test.
llvm-svn: 77690
2009-07-31 18:12:18 +00:00
Daniel Dunbar 1087599185 MultiTestRunner: Add module for lexing 'sh' commands.
llvm-svn: 77668
2009-07-31 07:59:05 +00:00
Daniel Dunbar 3667b99af3 MultiTestRunner: Simplify, cleanup, and rename!
- MultiTestRunner will eventually be renamed to 'lit', for LLVM integrated
   tester/testing. This has the pros of being pronouncable and short.

 - "Project" level configuration lives in 'lit.cfg', which is also what lit uses
   to find the root testing directory in some cases. This can be overridden for
   use in project files which want to precisely specify where things are.

 - TestRunner.py is not longer able to be invoked directly.
 
 - Moved some code to Util.py.

 - Introduced a configuration object.

 - Cleaned up --help, removed a few not-very-useful options.

 - Tried not to break anything that works. :)

llvm-svn: 77665
2009-07-31 05:54:17 +00:00
Ted Kremenek bfe393fa0a Add scan-build option '-no-failure-reports' to supress the creation of a 'failures' subdirectory that includes crash reports, preprocessed files, etc.
llvm-svn: 77644
2009-07-30 23:55:19 +00:00
Daniel Dunbar ba848438e3 MultiTestRunner: Stop printing XFAILs on every run, this doesn't really have any
value.

llvm-svn: 77566
2009-07-30 01:57:45 +00:00
Daniel Dunbar 0a1fa85894 scan-build: Don't try to index plist-html output directories
llvm-svn: 77465
2009-07-29 16:21:23 +00:00
Douglas Gregor 436081940c Make the Python TestRunner work for individual tests
llvm-svn: 77456
2009-07-29 15:32:08 +00:00
Daniel Dunbar 1cb8d81b41 MultiTestRunner: Reenable --vg option.
- Simplified from before and using --error-exitcode so failures show up as
   failures.

llvm-svn: 77424
2009-07-29 02:57:25 +00:00
Ted Kremenek 0799d4f0bb Only generate preprocessed files during crashes using Clang, not GCC.
llvm-svn: 77281
2009-07-28 00:14:21 +00:00
Ted Kremenek 5cc54863ce Add scan-build support for 'plist-html', a hybrid mode that supports the
creation of both HTML and plist files. Plist files are currently not generated
using the same layout algorithm as just specifying '-plist', so this is mainly
intended to help support automated runs of the analyzer.

llvm-svn: 77263
2009-07-27 22:10:34 +00:00
Daniel Dunbar b8aa9589bb Tweak MultiTestRunner --path argument.
- Accept multiple values instead of embedding separator.
 - Make sure this gets used when searching for 'clang' binary.
 - Switch makefiles to using --path to stay in sync with cmake.

llvm-svn: 77234
2009-07-27 19:01:13 +00:00
Daniel Dunbar 605bd11311 MultiTestRunner: Make sure to point at src dir, for out of tree builds.
Factor out routine for executing the script commands.

llvm-svn: 77075
2009-07-25 15:26:08 +00:00
Daniel Dunbar 4edf8a17d5 MultiTestRunner: Cleanup test execution & output.
- Stop writing everything to files.

 - Make test output more standard.

llvm-svn: 77074
2009-07-25 14:46:05 +00:00