Driver: Add ArgList implementation.

llvm-svn: 66037
This commit is contained in:
Daniel Dunbar 2009-03-04 17:10:42 +00:00
parent 79fa6a24b7
commit 3e2cbc3161
2 changed files with 25 additions and 2 deletions

View File

@ -10,6 +10,7 @@
#ifndef CLANG_DRIVER_ARGLIST_H_
#define CLANG_DRIVER_ARGLIST_H_
#include "Util.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
@ -34,7 +35,7 @@ namespace driver {
ArgStringList ArgStrings;
/// The full list of arguments.
llvm::SmallVector<Arg*, 16> Args;
arglist_type Args;
/// A map of arguments by option ID; in conjunction with the
/// intrusive list in Arg instances this allows iterating over all
@ -42,7 +43,7 @@ namespace driver {
llvm::DenseMap<unsigned, Arg*> ArgMap;
public:
ArgList(unsigned argc, const char **argv);
ArgList(const char **ArgBegin, const char **ArgEnd);
ArgList(const ArgList &);
~ArgList();

View File

@ -0,0 +1,22 @@
//===--- ArgList.cpp - Argument List Management -------------------------*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "clang/Driver/ArgList.h"
#include "clang/Driver/Arg.h"
using namespace clang::driver;
ArgList::ArgList(const char **ArgBegin, const char **ArgEnd) {
ArgStrings.append(ArgBegin, ArgEnd);
}
ArgList::~ArgList() {
for (iterator it = begin(), ie = end(); it != ie; ++ie)
delete *it;
}