summaryrefslogtreecommitdiffstats
path: root/clang/utils
Commit message (Collapse)AuthorAgeFilesLines
...
* [analyzer] CmpRuns - cleaned up the API, added relative path getterAnna Zaks2012-10-151-19/+40
| | | | llvm-svn: 165995
* Remove pointless classof()'s.Sean Silva2012-10-111-2/+0
| | | | | | | Updates to llvm/Support/Casting.h have rendered these classof()'s irrelevant. llvm-svn: 165770
* tblgen: Build clang-tblgen without RTTI.Sean Silva2012-10-102-2/+0
| | | | | | clang-tblgen no longer needs RTTI! llvm-svn: 165650
* tblgen: Use LLVM-style RTTI in clang-tblgenSean Silva2012-10-104-25/+24
| | | | llvm-svn: 165649
* tblgen: Migrate clang-tblgen to new TableGenMain API.Sean Silva2012-10-031-87/+82
| | | | llvm-svn: 165167
* Comment sema: warn when comment has \deprecated but declaration does not have aDmitri Gribenko2012-09-221-0/+1
| | | | | | | | | deprecation attribute ('deprecated', 'availability' or 'unavailable'). This warning is under a separate flag, -Wdocumentation-deprecated-sync, so it can be turned off easily while leaving other -Wdocumentation warnings on. llvm-svn: 164467
* Comment parsing: handle \deprecated command. It is a block command, but itDmitri Gribenko2012-09-131-0/+1
| | | | | | | should be fine to use it without further explanations in the attached paragraph, so the warning about empty paragraph was turned off for it. llvm-svn: 163836
* Comment AST: TableGen'ize all command lists in CommentCommandTraits.cpp.Dmitri Gribenko2012-09-104-0/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we have a list of all commands. This is a good thing in itself, but it also enables us to easily implement typo correction for command names. With this change we have objects that contain information about each command, so it makes sense to resolve command name just once during lexing (currently we store command names as strings and do a linear search every time some property value is needed). Thus comment token and AST nodes were changed to contain a command ID -- index into a tables of builtin and registered commands. Unknown commands are registered during parsing and thus are also uniformly assigned an ID. Using an ID instead of a StringRef is also a nice memory optimization since ID is a small integer that fits into a common bitfield in Comment class. This change implies that to get any information about a command (even a command name) we need a CommandTraits object to resolve the command ID to CommandInfo*. Currently a fresh temporary CommandTraits object is created whenever it is needed since it does not have any state. But with this change it has state -- new commands can be registered, so a CommandTraits object was added to ASTContext. Also, in libclang CXComment has to be expanded to include a CXTranslationUnit so that all functions working on comment AST nodes can get a CommandTraits object. This breaks binary compatibility of CXComment APIs. Now clang_FullComment_getAsXML(CXTranslationUnit TU, CXComment CXC) doesn't need TU parameter anymore, so it was removed. This is a source-incompatible change for this C API. llvm-svn: 163540
* Add handy script for updating plist FileCheck expected output forTed Kremenek2012-09-101-0/+51
| | | | | | analyzer tests. llvm-svn: 163486
* [analyzer] testing: add a build mode to allow C++11 testing.Anna Zaks2012-09-062-16/+22
| | | | llvm-svn: 163357
* Dont cast away const needlessly. Found by gcc48 -Wcast-qual.Roman Divacky2012-09-061-2/+2
| | | | llvm-svn: 163325
* Comment HTML tag name machers: move from StringSwitch to an efficientDmitri Gribenko2012-08-314-0/+89
| | | | | | TableGen-generated string matcher. llvm-svn: 162969
* Revert "[analyzer] Disable diagnostic checking on the buildbot."Jordan Rose2012-08-311-8/+6
| | | | | | | This reverts commit befc0f648c83f65e1f3567f2058c7c18b4bc3ad8 now that plist-html diagnostics are working again. llvm-svn: 162966
* [analyzer] Disable diagnostic checking on the buildbot.Anna Zaks2012-08-301-6/+8
| | | | | | Due to recent diagnostic changes, we may generate malformed diagnostics. llvm-svn: 162940
* [analyzer] Fixup 162863.Anna Zaks2012-08-291-3/+0
| | | | | | Thanks Jordan. llvm-svn: 162875
* [analyzer]Fix typo, unbreak static analyzer BuildBot (at leastAnna Zaks2012-08-291-1/+4
| | | | | | | | partially). (Addresses a regression from r162790.) llvm-svn: 162864
* Automatically use more cores when the test build uses 'make'.Ted Kremenek2012-08-281-0/+29
| | | | llvm-svn: 162790
* Consolidate helper methods and configuration logic. No functionality change.Ted Kremenek2012-08-281-34/+46
| | | | llvm-svn: 162789
* Pass --use-analyzer to scan-build when running within the test harness.Ted Kremenek2012-08-281-4/+42
| | | | llvm-svn: 162783
* experimental.security.taint is now alpha.security.taintTed Kremenek2012-08-281-1/+1
| | | | llvm-svn: 162775
* [analyzer] More internal stats collection.Anna Zaks2012-08-271-4/+13
| | | | llvm-svn: 162687
* [analyzer] Ted fixed the plist-html issue, so the assert can go away.Anna Zaks2012-08-241-3/+1
| | | | llvm-svn: 162598
* [analyzer] Unbreak the static analyzer buildbot.Anna Zaks2012-08-171-1/+3
| | | | | | | We no longer associate the correct HTML file with plist diagnostic. Fall out from r162028. llvm-svn: 162071
* Don't constant-fold when pretty-printing alignment attribute. This fixes aRichard Smith2012-08-161-3/+6
| | | | | | potential crasher -- Context is sometimes a null reference (!!) here. llvm-svn: 162007
* Placate the mingw32 buildbot by suffixing 64-bit constants with ULL.Richard Smith2012-08-141-2/+2
| | | | llvm-svn: 161831
* Fix undefined behavior (and wrong code, as far as I can tell) in NEON builtinRichard Smith2012-08-141-3/+3
| | | | | | | | | tablegen code, found by -fcatch-undefined-behavior. I would appreciate if someone more familiar with the NEON code could point me in the direction of how to write a test for this. We appear to have essentially no test coverage whatsoever for these builtins. llvm-svn: 161827
* Fix horrible regression in control of warnings caused by introduction of ↵Ted Kremenek2012-08-101-4/+12
| | | | | | | | | | | | | | | -Wpedantic. While -Wpedantic was reasonable, -Wno-pedantic would turn off a bunch of warnings that are on by default. This counters the intention of this warning flag. To fix this, -Wpedantic now includes extentions that are not on by default. The remaining warnings will manifest anyway, and won't accidentally get turned off by -Wno-pedantic. Fixes <rdar://problem/12076105> llvm-svn: 161695
* Add missing cctype includes.Joerg Sonnenberger2012-08-101-0/+1
| | | | llvm-svn: 161660
* Enhance ClangDiagnosticsEmitter to reject diagnostics that are errors that ↵Ted Kremenek2012-08-071-0/+17
| | | | | | | | | | | | | | are also included in warning groups. Warning groups can only contain warnings, because only warnings can be mapped to errors or ignored. This caught a few diagnostics that were incorrectly in diagnostic groups, and could have resulted in a compiler crash when those diagnostic groups were mapped. Fixes <rdar://problem/12044436> llvm-svn: 161389
* TableGen: Remove extraneous \ character from arm_neon.h definitions.Jim Grosbach2012-08-031-1/+1
| | | | llvm-svn: 161244
* [analyzer] CmpRuns should include file name in the issue identifier.Anna Zaks2012-08-021-17/+26
| | | | | | | | | | This prevents us from treating the issues from different files with the same function names and same offsets as the same. The issue identifier now includes the file name. Also added a way to strip off the root directories form the source file names. llvm-svn: 161150
* SATestBuild should not ask for non-existent checkers.Jordan Rose2012-07-261-1/+1
| | | | | | | - "cocoa" was moved to "osx.cocoa" a long time ago. - "cplusplus" would be a valid package except we don't have any C++ checkers. llvm-svn: 160821
* Un-break standalone invocations of CmpRuns.py.Jordan Rose2012-07-261-1/+1
| | | | | | Fallout from CmpRuns.py API changes in r160314. llvm-svn: 160800
* Remove an unused headerMichael Han2012-07-191-1/+0
| | | | llvm-svn: 160492
* [analyzer] Make CmpRuns external-user friendly.Anna Zaks2012-07-162-45/+63
| | | | | | | | | CmpRuns can be used for static analyzer bug report comparison. However, we want to make sure external users do not rely on the way bugs are represented (plist files). Make sure that we have a user friendly/documented API for CmpRuns script. llvm-svn: 160314
* Re-apply r159875 with fixes.Ted Kremenek2012-07-071-10/+229
| | | | | | | - Split pedantic driver flag test into separate test file, and XFAIL on cygwin,mingw32 - Fix bug in tablegen logic where a missing '{' caused errors to be included in -Wpedantic. llvm-svn: 159892
* Revert rr159875, "Implement -Wpedantic and --no-pedantic to complement ↵NAKAMURA Takumi2012-07-071-228/+10
| | | | | | | | | | -Weverything." It broke several builds. I suspect FileCheck might match assertion failure, even if clang/test/Misc/warning-flags.c passed the test. > 0. Program arguments: bin/./clang -### -pedantic -Wpedantic clang/test/Driver/warning-options.cpp llvm-svn: 159886
* Implement -Wpedantic and --no-pedantic to complement -Weverything.Ted Kremenek2012-07-061-10/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces some magic in tablegen to create a "Pedantic" diagnostic group which automagically includes all warnings that are extensions. This allows a user to suppress specific warnings traditionally under -pedantic used an ordinary warning flag. This also allows users to use #pragma to silence specific -pedantic warnings, or promote them to errors, within blocks of text (just like any other warning). -Wpedantic is NOT an alias for -pedantic. Instead, it provides another way to (a) activate -pedantic warnings and (b) disable them. Where they differ is that -pedantic changes the behavior of the preprocessor slightly, whereas -Wpedantic does not (it just turns on the warnings). The magic in the tablegen diagnostic emitter has to do with computing the minimal set of diagnostic groups and diagnostics that should go into -Wpedantic, as those diagnostics that already members of groups that themselves are (transitively) members of -Wpedantic do not need to be included in the Pedantic group directly. I went back and forth on whether or not to magically generate this group, and the invariant was that we always wanted extension warnings to be included in -Wpedantic "some how", but the bookkeeping would be very onerous to manage by hand. -no-pedantic (and --no-pedantic) is included for completeness, and matches many of the same kind of flags the compiler already supports. It does what it says: cancels out -pedantic. One discrepancy is that if one specifies --no-pedantic and -Weverything or -Wpedantic the pedantic warnings are still enabled (essentially the -W flags win). We can debate the correct behavior here. Along the way, this patch nukes some code in TextDiagnosticPrinter.cpp and CXStoredDiagnostic.cpp that determine whether to include the "-pedantic" flag in the warning output. This is no longer needed, as all extensions now have a -W flag. This patch also significantly reduces the number of warnings not under flags from 229 to 158 (all extension warnings). That's a 31% reduction. llvm-svn: 159875
* Implement AST classes for comments, a real parser for Doxygen comments and aDmitri Gribenko2012-07-061-0/+6
| | | | | | | | | | | | | | very simple semantic analysis that just builds the AST; minor changes for lexer to pick up source locations I didn't think about before. Comments AST is modelled along the ideas of HTML AST: block and inline content. * Block content is a paragraph or a command that has a paragraph as an argument or verbatim command. * Inline content is placed within some block. Inline content includes plain text, inline commands and HTML as tag soup. llvm-svn: 159790
* [analyzer] Add a statistic for maximum CFG size and a script to summarize ↵Anna Zaks2012-07-051-0/+75
| | | | | | analyzer stats from scan-build output. llvm-svn: 159776
* clang/utils/TableGen/ClangAttrEmitter.cpp: Fix abuse of StringRef (from ↵NAKAMURA Takumi2012-07-031-1/+1
| | | | | | getValueAsString()). llvm-svn: 159662
* Fix a thinko and a stray debugging hunk in my attributes patch. Thanks to JordanAlexis Hunt2012-06-201-3/+0
| | | | | | Rose and Richard Smith for catching these. llvm-svn: 158826
* Reapply r158700 and fixup patches, minus one hunk that slipped through andAlexis Hunt2012-06-191-55/+43
| | | | | | | caused a crash in an obscure case. On the plus side, it caused me to catch another bug by inspection. llvm-svn: 158767
* Revert r158700 and dependent patches r158716, r158717, and r158731.Jakob Stoklund Olesen2012-06-191-43/+55
| | | | | | | | 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
* Remove redundant uses of SmallStringAlexis Hunt2012-06-191-7/+3
| | | | llvm-svn: 158731
* Stop abusing StringRef. Fixes the Windows build.Alexis Hunt2012-06-191-12/+12
| | | | | | | 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
* Improve the specification of spellings in Attr.td.Alexis Hunt2012-06-191-53/+45
| | | | | | | | | | | | | | | | | 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
* Handle C++11 attribute namespaces automatically.Alexis Hunt2012-06-181-2/+24
| | | | | | | | 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
* Make clang-tblgen backends functions instead of TableGenBackends.Jakob Stoklund Olesen2012-06-1314-630/+403
| | | | | | | | Get rid of a bunch of header files. TableGen output should be unaffected. Patch by Sean Silva! llvm-svn: 158388
* [analyzer] Use "issue hash" in CmpRuns; followup on r158180Anna Zaks2012-06-081-3/+11
| | | | | | | (For the future: It would be more efficient to produce a hash key with the embedded function info inside the compiler.) llvm-svn: 158187
OpenPOWER on IntegriCloud