Commit Graph

55 Commits

Author SHA1 Message Date
Guy Benyei 83c74e9fad Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration.
llvm-svn: 175006
2013-02-12 21:21:59 +00:00
Chandler Carruth ed0881b2a6 Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

llvm-svn: 169131
2012-12-03 16:50:05 +00:00
Michael J. Spencer 96ebd91d6c [Support/PathV2] Fix out of bounds access in identify_magic when the file is empty.
llvm-svn: 158704
2012-06-19 05:29:57 +00:00
Michael J. Spencer 39fb408fd3 [PathV2]: Fix bug in create_directories which caused infinite recursion on
som inputs.

Bug found and fix proposed by Kal Conley!

llvm-svn: 153225
2012-03-21 23:09:14 +00:00
Daniel Dunbar 39ea458b73 Support/PathV2: Fix namespace qualifier in make_absolute(), for Win32.
llvm-svn: 151685
2012-02-29 00:46:46 +00:00
Daniel Dunbar b23158c3b7 Support/PathV2: Fix make_absolute() to match is_absolute() and not expect to
find root names on Unix.
 - This fixes make_absolute to not basically always call current_path() on
   Unix systems.
 - I think the API probably needs cleanup in this area, but I'll let Michael
   handle that.

llvm-svn: 151681
2012-02-29 00:20:37 +00:00
Michael J. Spencer e646239e5e [PathV2] Fix bug in relative_path.
llvm-svn: 151675
2012-02-29 00:06:24 +00:00
David Blaikie 18544b9614 Change default error_code ctor to a 'named ctor' so it's more self-documenting.
Unify default construction of error_code uses on this idiom so that users don't
feel compelled to make static globals for naming convenience. (unfortunately I
couldn't make the original ctor private as some APIs don't return their result,
instead using an out parameter (that makes sense to default construct) - which
is a bit of a pity. I did, however, find/fix some cases of unnecessary default
construction of error_code before I hit the unfixable cases)

llvm-svn: 150197
2012-02-09 19:24:12 +00:00
Benjamin Kramer 5e4f0a4a31 PathV2: Remove static StringRef ctors.
llvm-svn: 150071
2012-02-08 13:13:47 +00:00
Michael J. Spencer 4f8a832c19 Support/FileSystem: Add file_magic and move a vew clients over to it.
llvm-svn: 146523
2011-12-13 23:17:12 +00:00
Michael J. Spencer 7dfbeda68e Cleanup whitespace.
llvm-svn: 146521
2011-12-13 23:16:15 +00:00
Michael J. Spencer 513f1b666f Support/Windows: Cleanup scoped handles.
llvm-svn: 146362
2011-12-12 06:03:33 +00:00
Eli Friedman f67d3ff8f3 Fix a minor bug in fs::create_directories. Patch by Albert Wong.
llvm-svn: 139928
2011-09-16 18:36:31 +00:00
Douglas Gregor 8b74454619 Update the comment for system_temp_directory() to indicate when it
will ignore the erasedOnReboot option, and properly escape the
backslash in "C:\TEMP". Thanks to Aaron and Francois.

llvm-svn: 139755
2011-09-14 23:21:47 +00:00
Douglas Gregor 123dc70c50 Add a simple routine to determine the typical system directory for
temporary data. 

llvm-svn: 139725
2011-09-14 20:27:01 +00:00
Benjamin Kramer 91ead3c1f5 Remove unimplemented function prototypes from PathV2. They can be readded when someone cares enough.
Patch by Aaron Ballman!

llvm-svn: 139682
2011-09-14 01:14:36 +00:00
Argyrios Kyrtzidis a61736ff90 Implement a function from PathV2 whose definition is missing.
llvm-svn: 125574
2011-02-15 17:51:19 +00:00
Zhanyong Wan 606bb1a2dc Adds llvm::sys::path::is_separator() to test whether a char is a path separator
on the host OS.  Reviewed by dgregor.

llvm-svn: 125406
2011-02-11 21:24:40 +00:00
Michael J. Spencer 94b2ab3556 Support/PathV2: Add identify_magic.
llvm-svn: 123548
2011-01-15 20:39:36 +00:00
Michael J. Spencer 7887466adc Support/PathV2: Implement has_magic in terms of get_magic.
llvm-svn: 123545
2011-01-15 18:52:41 +00:00
Michael J. Spencer d9960c69b5 Support/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink.
llvm-svn: 123345
2011-01-12 23:55:06 +00:00
Michael J. Spencer 0d771edeee Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.
llvm-svn: 123209
2011-01-11 01:21:55 +00:00
Michael J. Spencer 61d6f739a8 Support/PathV2: Implement remove_all.
llvm-svn: 122884
2011-01-05 16:39:38 +00:00
Michael J. Spencer f8dc1868e2 Support/PathV2: Implement directory_entry::status.
llvm-svn: 122881
2011-01-05 16:39:13 +00:00
Benjamin Kramer 110442d8a0 Fix a signed/unsigned comparison warning.
llvm-svn: 122597
2010-12-28 13:05:13 +00:00
Michael J. Spencer 848f46bb84 Support/PathV2: Implement has_magic.
llvm-svn: 122587
2010-12-28 01:49:01 +00:00
Michael J. Spencer 6d4b7e7e83 Support/PathV2: Add missing has_relative_path impl.
llvm-svn: 122243
2010-12-20 13:30:28 +00:00
Benjamin Kramer ffa42ced39 PathV2: Use StringRef::substr to simplify substring creation.
llvm-svn: 122085
2010-12-17 20:27:37 +00:00
Benjamin Kramer cb520cd8cb Missed some StringRefRefs.
llvm-svn: 122077
2010-12-17 18:59:09 +00:00
Benjamin Kramer 292b44baea Pass StringRefs by value, for consistency.
llvm-svn: 122074
2010-12-17 18:19:06 +00:00
Michael J. Spencer 730f51ad96 Support/FileSystem: Change file_status predicate functions that cannot fail to
return their result instead of an error_code. Also add some missing predicate
functions.

llvm-svn: 121380
2010-12-09 17:37:02 +00:00
Michael J. Spencer a68282caa8 Support/PathV2: Remove const from bool return types.
llvm-svn: 121157
2010-12-07 18:12:07 +00:00
Michael J. Spencer f616b218c8 Support/PathV2: Change most functions in the path namespace to return their work
via their return value instead of an out parameter.

llvm-svn: 121149
2010-12-07 17:04:04 +00:00
Michael J. Spencer bfea3c739d Support/PathV2: Cleanup separator handling.
llvm-svn: 121110
2010-12-07 03:57:48 +00:00
Michael J. Spencer 1e090f0b8f Support/PathV2: Remove the error_code return type from all functions in the path
namespace. None of them return anything except for success anyway. These will be
converted to returning their result soon.

llvm-svn: 121109
2010-12-07 03:57:37 +00:00
Michael J. Spencer 92903a3339 Support/PathV2: Move make_absolute from path to fs.
llvm-svn: 121108
2010-12-07 03:57:17 +00:00
Michael J. Spencer 98c7a114de Support/PathV2: Use SmallVector::clear instead of set_size.
llvm-svn: 121092
2010-12-07 01:23:19 +00:00
Michael J. Spencer 20daa28344 Support/PathV2: Move current_path from path to fs and fix the Unix implementation.
Unix bug spotted by Dan Gohman.

llvm-svn: 121090
2010-12-07 01:22:31 +00:00
Michael J. Spencer 7ecd94cc0b Support/FileSystem: Add directory_iterator implementation.
llvm-svn: 120989
2010-12-06 04:28:42 +00:00
Michael J. Spencer 95e4ac16a5 Support/PathV2: Fix append to not add a slash to empty or root paths.
llvm-svn: 120988
2010-12-06 04:28:23 +00:00
Bill Wendling 3336f748a5 Silence 'may be used uninitialized in this function' warnings. Static analysis
may determine that they cannot be used uninitialized. But that might be a bit
too much for the compiler to determine.

llvm-svn: 120916
2010-12-04 20:20:34 +00:00
Michael J. Spencer 66a1f86f7a Support/PathV2: Remove redundant calls to make_error_code.
llvm-svn: 120913
2010-12-04 18:45:32 +00:00
Michael J. Spencer db5576a185 Support/FileSystem: Add status implementation.
llvm-svn: 120870
2010-12-04 00:32:40 +00:00
Michael J. Spencer 31e310cda0 Support/FileSystem: Add create_director{y,ies} implementations.
llvm-svn: 120790
2010-12-03 05:42:11 +00:00
Michael J. Spencer 9fc1d9dcc3 Support/FileSystem: Add copy_file implementation. Not tests yet because the
file creation APIs aren't implemented.

llvm-svn: 120593
2010-12-01 19:32:01 +00:00
Michael J. Spencer a72df5fae8 Support/PathV2: Add is_{absolute,relative} implementation.
llvm-svn: 120560
2010-12-01 06:21:53 +00:00
Michael J. Spencer 112a769379 Support/PathV2: Add has_{root_path,root_name,root_directory,parent_path,filename,stem,extension} implementation.
llvm-svn: 120559
2010-12-01 06:03:50 +00:00
Michael J. Spencer 87106c59ed Support/PathV2: Add extension implementation.
llvm-svn: 120550
2010-12-01 03:37:41 +00:00
Michael J. Spencer 956955ed8b Support/PathV2: Add stem implementation.
llvm-svn: 120547
2010-12-01 03:18:33 +00:00
Michael J. Spencer 142692006b Support/PathV2: Add filename implementation.
llvm-svn: 120546
2010-12-01 03:18:17 +00:00