/// file_magic - An "enum class" enumeration of file types based on magic (the first
/// N bytes of the file).
struct file_magic {
- enum _ {
+ enum Impl {
unknown = 0, ///< Unrecognized file
bitcode, ///< Bitcode file
archive, ///< ar style archive file
};
bool is_object() const {
- return v_ == unknown ? false : true;
+ return V == unknown ? false : true;
}
- file_magic() : v_(unknown) {}
- file_magic(_ v) : v_(v) {}
- explicit file_magic(int v) : v_(_(v)) {}
- operator int() const {return v_;}
+ file_magic() : V(unknown) {}
+ file_magic(Impl V) : V(V) {}
+ operator Impl() const { return V; }
private:
- int v_;
+ Impl V;
};
/// @}
sys::fs::file_magic Type = sys::fs::identify_magic(Object->getBuffer());
switch (Type) {
case sys::fs::file_magic::unknown:
+ case sys::fs::file_magic::bitcode:
+ case sys::fs::file_magic::archive:
return 0;
case sys::fs::file_magic::elf_relocatable:
case sys::fs::file_magic::elf_executable: