Searched refs:affect (Results 1 - 10 of 10) sorted by relevance

/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/sysroot/usr/include/X11/extensions/
H A DXKBstr.h141 unsigned char affect; member in struct:_XkbISOAction
169 unsigned char affect; member in struct:_XkbPtrDfltAction
/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/sysroot/usr/include/X11/extensions/
H A DXKBstr.h141 unsigned char affect; member in struct:_XkbISOAction
169 unsigned char affect; member in struct:_XkbPtrDfltAction
/prebuilts/gdb/darwin-x86/lib/python2.7/pydoc_data/
H A Dtopics.py18 'calls': '\nCalls\n*****\n\nA call calls a callable object (e.g., a *function*) with a possibly\nempty series of *arguments*:\n\n call ::= primary "(" [argument_list [","]\n | expression genexpr_for] ")"\n argument_list ::= positional_arguments ["," keyword_arguments]\n ["," "*" expression] ["," keyword_arguments]\n ["," "**" expression]\n | keyword_arguments ["," "*" expression]\n ["," "**" expression]\n | "*" expression ["," "*" expression] ["," "**" expression]\n | "**" expression\n positional_arguments ::= expression ("," expression)*\n keyword_arguments ::= keyword_item ("," keyword_item)*\n keyword_item ::= identifier "=" expression\n\nA trailing comma may be present after the positional and keyword\narguments but does not affect the semantics.\n\nThe primary must evaluate to a callable object (user-defined\nfunctions, built-in functions, methods of built-in objects, class\nobjects, methods of class instances, and certain class instances\nthemselves are callable; extensions may define additional callable\nobject types). All argument expressions are evaluated before the call\nis attempted. Please refer to section *Function definitions* for the\nsyntax of formal *parameter* lists.\n\nIf keyword arguments are present, they are first converted to\npositional arguments, as follows. First, a list of unfilled slots is\ncreated for the formal parameters. If there are N positional\narguments, they are placed in the first N slots. Next, for each\nkeyword argument, the identifier is used to determine the\ncorresponding slot (if the identifier is the same as the first formal\nparameter name, the first slot is used, and so on). If the slot is\nalready filled, a ``TypeError`` exception is raised. Otherwise, the\nvalue of the argument is placed in the slot, filling it (even if the\nexpression is ``None``, it fills the slot). When all arguments have\nbeen processed, the slots that are still unfilled are filled with the\ncorresponding default value from the function definition. (Default\nvalues are calculated, once, when the function is defined; thus, a\nmutable object such as a list or dictionary used as default value will\nbe shared by all calls that don\'t specify an argument value for the\ncorresponding slot; this should usually be avoided.) If there are any\nunfilled slots for which no default value is specified, a\n``TypeError`` exception is raised. Otherwise, the list of filled\nslots is used as the argument list for the call.\n\n**CPython implementation detail:** An implementation may provide\nbuilt-in functions whose positional parameters do not have names, even\nif they are \'named\' for the purpose of documentation, and which\ntherefore cannot be supplied by keyword. In CPython, this is the case\nfor functions implemented in C that use ``PyArg_ParseTuple()`` to\nparse their arguments.\n\nIf there are more positional arguments than there are formal parameter\nslots, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``*identifier`` is present; in this case, that formal\nparameter receives a tuple containing the excess positional arguments\n(or an empty tuple if there were no excess positional arguments).\n\nIf any keyword argument does not correspond to a formal parameter\nname, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``**identifier`` is present; in this case, that\nformal parameter receives a dictionary containing the excess keyword\narguments (using the keywords as keys and the argument values as\ncorresponding values), or a (new) empty dictionary if there were no\nexcess keyword arguments.\n\nIf the syntax ``*expression`` appears in the function call,\n``expression`` must evaluate to an iterable. Elements from this\niterable are treated as if they were additional positional arguments;\nif there are positional arguments *x1*, ..., *xN*, and ``expression``\nevaluates to a sequence *y1*, ..., *yM*, this is equivalent to a call\nwith M+N positional arguments *x1*, ..., *xN*, *y1*, ..., *yM*.\n\nA consequence of this is that although the ``*expression`` syntax may\nappear *after* some keyword arguments, it is processed *before* the\nkeyword arguments (and the ``**expression`` argument, if any -- see\nbelow). So:\n\n >>> def f(a, b):\n ... print a, b\n ...\n >>> f(b=1, *(2,))\n 2 1\n >>> f(a=1, *(2,))\n Traceback (most recent call last):\n File "<stdin>", line 1, in ?\n TypeError: f() got multiple values for keyword argument \'a\'\n >>> f(1, *(2,))\n 1 2\n\nIt is unusual for both keyword arguments and the ``*expression``\nsyntax to be used in the same call, so in practice this confusion does\nnot arise.\n\nIf the syntax ``**expression`` appears in the function call,\n``expression`` must evaluate to a mapping, the contents of which are\ntreated as additional keyword arguments. In the case of a keyword\nappearing in both ``expression`` and as an explicit keyword argument,\na ``TypeError`` exception is raised.\n\nFormal parameters using the syntax ``*identifier`` or ``**identifier``\ncannot be used as positional argument slots or as keyword argument\nnames. Formal parameters using the syntax ``(sublist)`` cannot be\nused as keyword argument names; the outermost sublist corresponds to a\nsingle unnamed argument slot, and the argument value is assigned to\nthe sublist using the usual tuple assignment rules after all other\nparameter processing is done.\n\nA call always returns some value, possibly ``None``, unless it raises\nan exception. How this value is computed depends on the type of the\ncallable object.\n\nIf it is---\n\na user-defined function:\n The code block for the function is executed, passing it the\n argument list. The first thing the code block will do is bind the\n formal parameters to the arguments; this is described in section\n *Function definitions*. When the code block executes a ``return``\n statement, this specifies the return value of the function call.\n\na built-in function or method:\n The result is up to the interpreter; see *Built-in Functions* for\n the descriptions of built-in functions and methods.\n\na class object:\n A new instance of that class is returned.\n\na class instance method:\n The corresponding user-defined function is called, with an argument\n list that is one longer than the argument list of the call: the\n instance becomes the first argument.\n\na class instance:\n The class must define a ``__call__()`` method; the effect is then\n the same as if that method was called.\n',
21 'compound': '\nCompound statements\n*******************\n\nCompound statements contain (groups of) other statements; they affect\nor control the execution of those other statements in some way. In\ngeneral, compound statements span multiple lines, although in simple\nincarnations a whole compound statement may be contained in one line.\n\nThe ``if``, ``while`` and ``for`` statements implement traditional\ncontrol flow constructs. ``try`` specifies exception handlers and/or\ncleanup code for a group of statements. Function and class\ndefinitions are also syntactically compound statements.\n\nCompound statements consist of one or more \'clauses.\' A clause\nconsists of a header and a \'suite.\' The clause headers of a\nparticular compound statement are all at the same indentation level.\nEach clause header begins with a uniquely identifying keyword and ends\nwith a colon. A suite is a group of statements controlled by a\nclause. A suite can be one or more semicolon-separated simple\nstatements on the same line as the header, following the header\'s\ncolon, or it can be one or more indented statements on subsequent\nlines. Only the latter form of suite can contain nested compound\nstatements; the following is illegal, mostly because it wouldn\'t be\nclear to which ``if`` clause a following ``else`` clause would belong:\n\n if test1: if test2: print x\n\nAlso note that the semicolon binds tighter than the colon in this\ncontext, so that in the following example, either all or none of the\n``print`` statements are executed:\n\n if x < y < z: print x; print y; print z\n\nSummarizing:\n\n compound_stmt ::= if_stmt\n | while_stmt\n | for_stmt\n | try_stmt\n | with_stmt\n | funcdef\n | classdef\n | decorated\n suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT\n statement ::= stmt_list NEWLINE | compound_stmt\n stmt_list ::= simple_stmt (";" simple_stmt)* [";"]\n\nNote that statements always end in a ``NEWLINE`` possibly followed by\na ``DEDENT``. Also note that optional continuation clauses always\nbegin with a keyword that cannot start a statement, thus there are no\nambiguities (the \'dangling ``else``\' problem is solved in Python by\nrequiring nested ``if`` statements to be indented).\n\nThe formatting of the grammar rules in the following sections places\neach clause on a separate line for clarity.\n\n\nThe ``if`` statement\n====================\n\nThe ``if`` statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section *Boolean operations*\nfor the definition of true and false); then that suite is executed\n(and no other part of the ``if`` statement is executed or evaluated).\nIf all expressions are false, the suite of the ``else`` clause, if\npresent, is executed.\n\n\nThe ``while`` statement\n=======================\n\nThe ``while`` statement is used for repeated execution as long as an\nexpression is true:\n\n while_stmt ::= "while" expression ":" suite\n ["else" ":" suite]\n\nThis repeatedly tests the expression and, if it is true, executes the\nfirst suite; if the expression is false (which may be the first time\nit is tested) the suite of the ``else`` clause, if present, is\nexecuted and the loop terminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ngoes back to testing the expression.\n\n\nThe ``for`` statement\n=====================\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n\n\nThe ``try`` statement\n=====================\n\nThe ``try`` statement specifies exception handlers and/or cleanup code\nfor a group of statements:\n\n try_stmt ::= try1_stmt | try2_stmt\n try1_stmt ::= "try" ":" suite\n ("except" [expression [("as" | ",") target]] ":" suite)+\n ["else" ":" suite]\n ["finally" ":" suite]\n try2_stmt ::= "try" ":" suite\n "finally" ":" suite\n\nChanged in version 2.5: In previous versions of Python,\n``try``...``except``...``finally`` did not work. ``try``...``except``\nhad to be nested in ``try``...``finally``.\n\nThe ``except`` clause(s) specify one or more exception handlers. When\nno exception occurs in the ``try`` clause, no exception handler is\nexecuted. When an exception occurs in the ``try`` suite, a search for\nan exception handler is started. This search inspects the except\nclauses in turn until one is found that matches the exception. An\nexpression-less except clause, if present, must be last; it matches\nany exception. For an except clause with an expression, that\nexpression is evaluated, and the clause matches the exception if the\nresulting object is "compatible" with the exception. An object is\ncompatible with an exception if it is the class or a base class of the\nexception object, or a tuple containing an item compatible with the\nexception.\n\nIf no except clause matches the exception, the search for an exception\nhandler continues in the surrounding code and on the invocation stack.\n[1]\n\nIf the evaluation of an expression in the header of an except clause\nraises an exception, the original search for a handler is canceled and\na search starts for the new exception in the surrounding code and on\nthe call stack (it is treated as if the entire ``try`` statement\nraised the exception).\n\nWhen a matching except clause is found, the exception is assigned to\nthe target specified in that except clause, if present, and the except\nclause\'s suite is executed. All except clauses must have an\nexecutable block. When the end of this block is reached, execution\ncontinues normally after the entire try statement. (This means that\nif two nested handlers exist for the same exception, and the exception\noccurs in the try clause of the inner handler, the outer handler will\nnot handle the exception.)\n\nBefore an except clause\'s suite is executed, details about the\nexception are assigned to three variables in the ``sys`` module:\n``sys.exc_type`` receives the object identifying the exception;\n``sys.exc_value`` receives the exception\'s parameter;\n``sys.exc_traceback`` receives a traceback object (see section *The\nstandard type hierarchy*) identifying the point in the program where\nthe exception occurred. These details are also available through the\n``sys.exc_info()`` function, which returns a tuple ``(exc_type,\nexc_value, exc_traceback)``. Use of the corresponding variables is\ndeprecated in favor of this function, since their use is unsafe in a\nthreaded program. As of Python 1.5, the variables are restored to\ntheir previous values (before the call) when returning from a function\nthat handled an exception.\n\nThe optional ``else`` clause is executed if and when control flows off\nthe end of the ``try`` clause. [2] Exceptions in the ``else`` clause\nare not handled by the preceding ``except`` clauses.\n\nIf ``finally`` is present, it specifies a \'cleanup\' handler. The\n``try`` clause is executed, including any ``except`` and ``else``\nclauses. If an exception occurs in any of the clauses and is not\nhandled, the exception is temporarily saved. The ``finally`` clause is\nexecuted. If there is a saved exception, it is re-raised at the end\nof the ``finally`` clause. If the ``finally`` clause raises another\nexception or executes a ``return`` or ``break`` statement, the saved\nexception is discarded:\n\n def f():\n try:\n 1/0\n finally:\n return 42\n\n >>> f()\n 42\n\nThe exception information is not available to the program during\nexecution of the ``finally`` clause.\n\nWhen a ``return``, ``break`` or ``continue`` statement is executed in\nthe ``try`` suite of a ``try``...``finally`` statement, the\n``finally`` clause is also executed \'on the way out.\' A ``continue``\nstatement is illegal in the ``finally`` clause. (The reason is a\nproblem with the current implementation --- this restriction may be\nlifted in the future).\n\nAdditional information on exceptions can be found in section\n*Exceptions*, and information on using the ``raise`` statement to\ngenerate exceptions may be found in section *The raise statement*.\n\n\nThe ``with`` statement\n======================\n\nNew in version 2.5.\n\nThe ``with`` statement is used to wrap the execution of a block with\nmethods defined by a context manager (see section *With Statement\nContext Managers*). This allows common\n``try``...``except``...``finally`` usage patterns to be encapsulated\nfor convenient reuse.\n\n with_stmt ::= "with" with_item ("," with_item)* ":" suite\n with_item ::= expression ["as" target]\n\nThe execution of the ``with`` statement with one "item" proceeds as\nfollows:\n\n1. The context expression (the expression given in the ``with_item``)\n is evaluated to obtain a context manager.\n\n2. The context manager\'s ``__exit__()`` is loaded for later use.\n\n3. The context manager\'s ``__enter__()`` method is invoked.\n\n4. If a target was included in the ``with`` statement, the return\n value from ``__enter__()`` is assigned to it.\n\n Note: The ``with`` statement guarantees that if the ``__enter__()``\n method returns without an error, then ``__exit__()`` will always\n be called. Thus, if an error occurs during the assignment to the\n target list, it will be treated the same as an error occurring\n within the suite would be. See step 6 below.\n\n5. The suite is executed.\n\n6. The context manager\'s ``__exit__()`` method is invoked. If an\n exception caused the suite to be exited, its type, value, and\n traceback are passed as arguments to ``__exit__()``. Otherwise,\n three ``None`` arguments are supplied.\n\n If the suite was exited due to an exception, and the return value\n from the ``__exit__()`` method was false, the exception is\n reraised. If the return value was true, the exception is\n suppressed, and execution continues with the statement following\n the ``with`` statement.\n\n If the suite was exited for any reason other than an exception, the\n return value from ``__exit__()`` is ignored, and execution proceeds\n at the normal location for the kind of exit that was taken.\n\nWith more than one item, the context managers are processed as if\nmultiple ``with`` statements were nested:\n\n with A() as a, B() as b:\n suite\n\nis equivalent to\n\n with A() as a:\n with B() as b:\n suite\n\nNote: In Python 2.5, the ``with`` statement is only allowed when the\n ``with_statement`` feature has been enabled. It is always enabled\n in Python 2.6.\n\nChanged in version 2.7: Support for multiple context expressions.\n\nSee also:\n\n **PEP 0343** - The "with" statement\n The specification, background, and examples for the Python\n ``with`` statement.\n\n\nFunction definitions\n====================\n\nA function definition defines a user-defined function object (see\nsection *The standard type hierarchy*):\n\n decorated ::= decorators (classdef | funcdef)\n decorators ::= decorator+\n decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE\n funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite\n dotted_name ::= identifier ("." identifier)*\n parameter_list ::= (defparameter ",")*\n ( "*" identifier ["," "**" identifier]\n | "**" identifier\n | defparameter [","] )\n defparameter ::= parameter ["=" expression]\n sublist ::= parameter ("," parameter)* [","]\n parameter ::= identifier | "(" sublist ")"\n funcname ::= identifier\n\nA function definition is an executable statement. Its execution binds\nthe function name in the current local namespace to a function object\n(a wrapper around the executable code for the function). This\nfunction object contains a reference to the current global namespace\nas the global namespace to be used when the function is called.\n\nThe function definition does not execute the function body; this gets\nexecuted only when the function is called. [3]\n\nA function definition may be wrapped by one or more *decorator*\nexpressions. Decorator expressions are evaluated when the function is\ndefined, in the scope that contains the function definition. The\nresult must be a callable, which is invoked with the function object\nas the only argument. The returned value is bound to the function name\ninstead of the function object. Multiple decorators are applied in\nnested fashion. For example, the following code:\n\n @f1(arg)\n @f2\n def func(): pass\n\nis equivalent to:\n\n def func(): pass\n func = f1(arg)(f2(func))\n\nWhen one or more top-level *parameters* have the form *parameter*\n``=`` *expression*, the function is said to have "default parameter\nvalues." For a parameter with a default value, the corresponding\n*argument* may be omitted from a call, in which case the parameter\'s\ndefault value is substituted. If a parameter has a default value, all\nfollowing parameters must also have a default value --- this is a\nsyntactic restriction that is not expressed by the grammar.\n\n**Default parameter values are evaluated when the function definition\nis executed.** This means that the expression is evaluated once, when\nthe function is defined, and that the same "pre-computed" value is\nused for each call. This is especially important to understand when a\ndefault parameter is a mutable object, such as a list or a dictionary:\nif the function modifies the object (e.g. by appending an item to a\nlist), the default value is in effect modified. This is generally not\nwhat was intended. A way around this is to use ``None`` as the\ndefault, and explicitly test for it in the body of the function, e.g.:\n\n def whats_on_the_telly(penguin=None):\n if penguin is None:\n penguin = []\n penguin.append("property of the zoo")\n return penguin\n\nFunction call semantics are described in more detail in section\n*Calls*. A function call always assigns values to all parameters\nmentioned in the parameter list, either from position arguments, from\nkeyword arguments, or from default values. If the form\n"``*identifier``" is present, it is initialized to a tuple receiving\nany excess positional parameters, defaulting to the empty tuple. If\nthe form "``**identifier``" is present, it is initialized to a new\ndictionary receiving any excess keyword arguments, defaulting to a new\nempty dictionary.\n\nIt is also possible to create anonymous functions (functions not bound\nto a name), for immediate use in expressions. This uses lambda forms,\ndescribed in section *Lambdas*. Note that the lambda form is merely a\nshorthand for a simplified function definition; a function defined in\na "``def``" statement can be passed around or assigned to another name\njust like a function defined by a lambda form. The "``def``" form is\nactually more powerful since it allows the execution of multiple\nstatements.\n\n**Programmer\'s note:** Functions are first-class objects. A "``def``"\nform executed inside a function definition defines a local function\nthat can be returned or passed around. Free variables used in the\nnested function can access the local variables of the function\ncontaining the def. See section *Naming and binding* for details.\n\n\nClass definitions\n=================\n\nA class definition defines a class object (see section *The standard\ntype hierarchy*):\n\n classdef ::= "class" classname [inheritance] ":" suite\n inheritance ::= "(" [expression_list] ")"\n classname ::= identifier\n\nA class definition is an executable statement. It first evaluates the\ninheritance list, if present. Each item in the inheritance list\nshould evaluate to a class object or class type which allows\nsubclassing. The class\'s suite is then executed in a new execution\nframe (see section *Naming and binding*), using a newly created local\nnamespace and the original global namespace. (Usually, the suite\ncontains only function definitions.) When the class\'s suite finishes\nexecution, its execution frame is discarded but its local namespace is\nsaved. [4] A class object is then created using the inheritance list\nfor the base classes and the saved local namespace for the attribute\ndictionary. The class name is bound to this class object in the\noriginal local namespace.\n\n**Programmer\'s note:** Variables defined in the class definition are\nclass variables; they are shared by all instances. To create instance\nvariables, they can be set in a method with ``self.name = value``.\nBoth class and instance variables are accessible through the notation\n"``self.name``", and an instance variable hides a class variable with\nthe same name when accessed in this way. Class variables can be used\nas defaults for instance variables, but using mutable values there can\nlead to unexpected results. For *new-style class*es, descriptors can\nbe used to create instance variables with different implementation\ndetails.\n\nClass definitions, like function definitions, may be wrapped by one or\nmore *decorator* expressions. The evaluation rules for the decorator\nexpressions are the same as for functions. The result must be a class\nobject, which is then bound to the class name.\n\n-[ Footnotes ]-\n\n[1] The exception is propagated to the invocation stack unless there\n is a ``finally`` clause which happens to raise another exception.\n That new exception causes the old one to be lost.\n\n[2] Currently, control "flows off the end" except in the case of an\n exception or the execution of a ``return``, ``continue``, or\n ``break`` statement.\n\n[3] A string literal appearing as the first statement in the function\n body is transformed into the function\'s ``__doc__`` attribute and\n therefore the function\'s *docstring*.\n\n[4] A string literal appearing as the first statement in the class\n body is transformed into the namespace\'s ``__doc__`` item and\n therefore the class\'s *docstring*.\n',
35 'for': '\nThe ``for`` statement\n*********************\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n',
38 'global': '\nThe ``global`` statement\n************************\n\n global_stmt ::= "global" identifier ("," identifier)*\n\nThe ``global`` statement is a declaration which holds for the entire\ncurrent code block. It means that the listed identifiers are to be\ninterpreted as globals. It would be impossible to assign to a global\nvariable without ``global``, although free variables may refer to\nglobals without being declared global.\n\nNames listed in a ``global`` statement must not be used in the same\ncode block textually preceding that ``global`` statement.\n\nNames listed in a ``global`` statement must not be defined as formal\nparameters or in a ``for`` loop control target, ``class`` definition,\nfunction definition, or ``import`` statement.\n\n**CPython implementation detail:** The current implementation does not\nenforce the latter two restrictions, but programs should not abuse\nthis freedom, as future implementations may enforce them or silently\nchange the meaning of the program.\n\n**Programmer\'s note:** the ``global`` is a directive to the parser.\nIt applies only to code parsed at the same time as the ``global``\nstatement. In particular, a ``global`` statement contained in an\n``exec`` statement does not affect the code block *containing* the\n``exec`` statement, and code contained in an ``exec`` statement is\nunaffected by ``global`` statements in the code containing the\n``exec`` statement. The same applies to the ``eval()``,\n``execfile()`` and ``compile()`` functions.\n',
51 'objects': '\nObjects, values and types\n*************************\n\n*Objects* are Python\'s abstraction for data. All data in a Python\nprogram is represented by objects or by relations between objects. (In\na sense, and in conformance to Von Neumann\'s model of a "stored\nprogram computer," code is also represented by objects.)\n\nEvery object has an identity, a type and a value. An object\'s\n*identity* never changes once it has been created; you may think of it\nas the object\'s address in memory. The \'``is``\' operator compares the\nidentity of two objects; the ``id()`` function returns an integer\nrepresenting its identity (currently implemented as its address). An\nobject\'s *type* is also unchangeable. [1] An object\'s type determines\nthe operations that the object supports (e.g., "does it have a\nlength?") and also defines the possible values for objects of that\ntype. The ``type()`` function returns an object\'s type (which is an\nobject itself). The *value* of some objects can change. Objects\nwhose value can change are said to be *mutable*; objects whose value\nis unchangeable once they are created are called *immutable*. (The\nvalue of an immutable container object that contains a reference to a\nmutable object can change when the latter\'s value is changed; however\nthe container is still considered immutable, because the collection of\nobjects it contains cannot be changed. So, immutability is not\nstrictly the same as having an unchangeable value, it is more subtle.)\nAn object\'s mutability is determined by its type; for instance,\nnumbers, strings and tuples are immutable, while dictionaries and\nlists are mutable.\n\nObjects are never explicitly destroyed; however, when they become\nunreachable they may be garbage-collected. An implementation is\nallowed to postpone garbage collection or omit it altogether --- it is\na matter of implementation quality how garbage collection is\nimplemented, as long as no objects are collected that are still\nreachable.\n\n**CPython implementation detail:** CPython currently uses a reference-\ncounting scheme with (optional) delayed detection of cyclically linked\ngarbage, which collects most objects as soon as they become\nunreachable, but is not guaranteed to collect garbage containing\ncircular references. See the documentation of the ``gc`` module for\ninformation on controlling the collection of cyclic garbage. Other\nimplementations act differently and CPython may change. Do not depend\non immediate finalization of objects when they become unreachable (ex:\nalways close files).\n\nNote that the use of the implementation\'s tracing or debugging\nfacilities may keep objects alive that would normally be collectable.\nAlso note that catching an exception with a \'``try``...``except``\'\nstatement may keep objects alive.\n\nSome objects contain references to "external" resources such as open\nfiles or windows. It is understood that these resources are freed\nwhen the object is garbage-collected, but since garbage collection is\nnot guaranteed to happen, such objects also provide an explicit way to\nrelease the external resource, usually a ``close()`` method. Programs\nare strongly recommended to explicitly close such objects. The\n\'``try``...``finally``\' statement provides a convenient way to do\nthis.\n\nSome objects contain references to other objects; these are called\n*containers*. Examples of containers are tuples, lists and\ndictionaries. The references are part of a container\'s value. In\nmost cases, when we talk about the value of a container, we imply the\nvalues, not the identities of the contained objects; however, when we\ntalk about the mutability of a container, only the identities of the\nimmediately contained objects are implied. So, if an immutable\ncontainer (like a tuple) contains a reference to a mutable object, its\nvalue changes if that mutable object is changed.\n\nTypes affect almost all aspects of object behavior. Even the\nimportance of object identity is affected in some sense: for immutable\ntypes, operations that compute new values may actually return a\nreference to any existing object with the same type and value, while\nfor mutable objects this is not allowed. E.g., after ``a = 1; b =\n1``, ``a`` and ``b`` may or may not refer to the same object with the\nvalue one, depending on the implementation, but after ``c = []; d =\n[]``, ``c`` and ``d`` are guaranteed to refer to two different,\nunique, newly created empty lists. (Note that ``c = d = []`` assigns\nthe same object to both ``c`` and ``d``.)\n',
72 'typesseq': '\nSequence Types --- ``str``, ``unicode``, ``list``, ``tuple``, ``bytearray``, ``buffer``, ``xrange``\n***************************************************************************************************\n\nThere are seven sequence types: strings, Unicode strings, lists,\ntuples, bytearrays, buffers, and xrange objects.\n\nFor other containers see the built in ``dict`` and ``set`` classes,\nand the ``collections`` module.\n\nString literals are written in single or double quotes: ``\'xyzzy\'``,\n``"frobozz"``. See *String literals* for more about string literals.\nUnicode strings are much like strings, but are specified in the syntax\nusing a preceding ``\'u\'`` character: ``u\'abc\'``, ``u"def"``. In\naddition to the functionality described here, there are also string-\nspecific methods described in the *String Methods* section. Lists are\nconstructed with square brackets, separating items with commas: ``[a,\nb, c]``. Tuples are constructed by the comma operator (not within\nsquare brackets), with or without enclosing parentheses, but an empty\ntuple must have the enclosing parentheses, such as ``a, b, c`` or\n``()``. A single item tuple must have a trailing comma, such as\n``(d,)``.\n\nBytearray objects are created with the built-in function\n``bytearray()``.\n\nBuffer objects are not directly supported by Python syntax, but can be\ncreated by calling the built-in function ``buffer()``. They don\'t\nsupport concatenation or repetition.\n\nObjects of type xrange are similar to buffers in that there is no\nspecific syntax to create them, but they are created using the\n``xrange()`` function. They don\'t support slicing, concatenation or\nrepetition, and using ``in``, ``not in``, ``min()`` or ``max()`` on\nthem is inefficient.\n\nMost sequence types support the following operations. The ``in`` and\n``not in`` operations have the same priorities as the comparison\noperations. The ``+`` and ``*`` operations have the same priority as\nthe corresponding numeric operations. [3] Additional methods are\nprovided for *Mutable Sequence Types*.\n\nThis table lists the sequence operations sorted in ascending priority\n(operations in the same box have the same priority). In the table,\n*s* and *t* are sequences of the same type; *n*, *i* and *j* are\nintegers:\n\n+--------------------+----------------------------------+------------+\n| Operation | Result | Notes |\n+====================+==================================+============+\n| ``x in s`` | ``True`` if an item of *s* is | (1) |\n| | equal to *x*, else ``False`` | |\n+--------------------+----------------------------------+------------+\n| ``x not in s`` | ``False`` if an item of *s* is | (1) |\n| | equal to *x*, else ``True`` | |\n+--------------------+----------------------------------+------------+\n| ``s + t`` | the concatenation of *s* and *t* | (6) |\n+--------------------+----------------------------------+------------+\n| ``s * n, n * s`` | *n* shallow copies of *s* | (2) |\n| | concatenated | |\n+--------------------+----------------------------------+------------+\n| ``s[i]`` | *i*th item of *s*, origin 0 | (3) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j]`` | slice of *s* from *i* to *j* | (3)(4) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j:k]`` | slice of *s* from *i* to *j* | (3)(5) |\n| | with step *k* | |\n+--------------------+----------------------------------+------------+\n| ``len(s)`` | length of *s* | |\n+--------------------+----------------------------------+------------+\n| ``min(s)`` | smallest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``max(s)`` | largest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.index(i)`` | index of the first occurence of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.count(i)`` | total number of occurences of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n\nSequence types also support comparisons. In particular, tuples and\nlists are compared lexicographically by comparing corresponding\nelements. This means that to compare equal, every element must compare\nequal and the two sequences must be of the same type and have the same\nlength. (For full details see *Comparisons* in the language\nreference.)\n\nNotes:\n\n1. When *s* is a string or Unicode string object the ``in`` and ``not\n in`` operations act like a substring test. In Python versions\n before 2.3, *x* had to be a string of length 1. In Python 2.3 and\n beyond, *x* may be a string of any length.\n\n2. Values of *n* less than ``0`` are treated as ``0`` (which yields an\n empty sequence of the same type as *s*). Note also that the copies\n are shallow; nested structures are not copied. This often haunts\n new Python programmers; consider:\n\n >>> lists = [[]] * 3\n >>> lists\n [[], [], []]\n >>> lists[0].append(3)\n >>> lists\n [[3], [3], [3]]\n\n What has happened is that ``[[]]`` is a one-element list containing\n an empty list, so all three elements of ``[[]] * 3`` are (pointers\n to) this single empty list. Modifying any of the elements of\n ``lists`` modifies this single list. You can create a list of\n different lists this way:\n\n >>> lists = [[] for i in range(3)]\n >>> lists[0].append(3)\n >>> lists[1].append(5)\n >>> lists[2].append(7)\n >>> lists\n [[3], [5], [7]]\n\n3. If *i* or *j* is negative, the index is relative to the end of the\n string: ``len(s) + i`` or ``len(s) + j`` is substituted. But note\n that ``-0`` is still ``0``.\n\n4. The slice of *s* from *i* to *j* is defined as the sequence of\n items with index *k* such that ``i <= k < j``. If *i* or *j* is\n greater than ``len(s)``, use ``len(s)``. If *i* is omitted or\n ``None``, use ``0``. If *j* is omitted or ``None``, use\n ``len(s)``. If *i* is greater than or equal to *j*, the slice is\n empty.\n\n5. The slice of *s* from *i* to *j* with step *k* is defined as the\n sequence of items with index ``x = i + n*k`` such that ``0 <= n <\n (j-i)/k``. In other words, the indices are ``i``, ``i+k``,\n ``i+2*k``, ``i+3*k`` and so on, stopping when *j* is reached (but\n never including *j*). If *i* or *j* is greater than ``len(s)``,\n use ``len(s)``. If *i* or *j* are omitted or ``None``, they become\n "end" values (which end depends on the sign of *k*). Note, *k*\n cannot be zero. If *k* is ``None``, it is treated like ``1``.\n\n6. **CPython implementation detail:** If *s* and *t* are both strings,\n some Python implementations such as CPython can usually perform an\n in-place optimization for assignments of the form ``s = s + t`` or\n ``s += t``. When applicable, this optimization makes quadratic\n run-time much less likely. This optimization is both version and\n implementation dependent. For performance sensitive code, it is\n preferable to use the ``str.join()`` method which assures\n consistent linear concatenation performance across versions and\n implementations.\n\n Changed in version 2.4: Formerly, string concatenation never\n occurred in-place.\n\n\nString Methods\n==============\n\nBelow are listed the string methods which both 8-bit strings and\nUnicode objects support. Some of them are also available on\n``bytearray`` objects.\n\nIn addition, Python\'s strings support the sequence type methods\ndescribed in the *Sequence Types --- str, unicode, list, tuple,\nbytearray, buffer, xrange* section. To output formatted strings use\ntemplate strings or the ``%`` operator described in the *String\nFormatting Operations* section. Also, see the ``re`` module for string\nfunctions based on regular expressions.\n\nstr.capitalize()\n\n Return a copy of the string with its first character capitalized\n and the rest lowercased.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.center(width[, fillchar])\n\n Return centered in a string of length *width*. Padding is done\n using the specified *fillchar* (default is a space).\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.count(sub[, start[, end]])\n\n Return the number of non-overlapping occurrences of substring *sub*\n in the range [*start*, *end*]. Optional arguments *start* and\n *end* are interpreted as in slice notation.\n\nstr.decode([encoding[, errors]])\n\n Decodes the string using the codec registered for *encoding*.\n *encoding* defaults to the default string encoding. *errors* may\n be given to set a different error handling scheme. The default is\n ``\'strict\'``, meaning that encoding errors raise ``UnicodeError``.\n Other possible values are ``\'ignore\'``, ``\'replace\'`` and any other\n name registered via ``codecs.register_error()``, see section *Codec\n Base Classes*.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for other error handling schemes\n added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.encode([encoding[, errors]])\n\n Return an encoded version of the string. Default encoding is the\n current default string encoding. *errors* may be given to set a\n different error handling scheme. The default for *errors* is\n ``\'strict\'``, meaning that encoding errors raise a\n ``UnicodeError``. Other possible values are ``\'ignore\'``,\n ``\'replace\'``, ``\'xmlcharrefreplace\'``, ``\'backslashreplace\'`` and\n any other name registered via ``codecs.register_error()``, see\n section *Codec Base Classes*. For a list of possible encodings, see\n section *Standard Encodings*.\n\n New in version 2.0.\n\n Changed in version 2.3: Support for ``\'xmlcharrefreplace\'`` and\n ``\'backslashreplace\'`` and other error handling schemes added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.endswith(suffix[, start[, end]])\n\n Return ``True`` if the string ends with the specified *suffix*,\n otherwise return ``False``. *suffix* can also be a tuple of\n suffixes to look for. With optional *start*, test beginning at\n that position. With optional *end*, stop comparing at that\n position.\n\n Changed in version 2.5: Accept tuples as *suffix*.\n\nstr.expandtabs([tabsize])\n\n Return a copy of the string where all tab characters are replaced\n by one or more spaces, depending on the current column and the\n given tab size. Tab positions occur every *tabsize* characters\n (default is 8, giving tab positions at columns 0, 8, 16 and so on).\n To expand the string, the current column is set to zero and the\n string is examined character by character. If the character is a\n tab (``\\t``), one or more space characters are inserted in the\n result until the current column is equal to the next tab position.\n (The tab character itself is not copied.) If the character is a\n newline (``\\n``) or return (``\\r``), it is copied and the current\n column is reset to zero. Any other character is copied unchanged\n and the current column is incremented by one regardless of how the\n character is represented when printed.\n\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs()\n \'01 012 0123 01234\'\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs(4)\n \'01 012 0123 01234\'\n\nstr.find(sub[, start[, end]])\n\n Return the lowest index in the string where substring *sub* is\n found, such that *sub* is contained in the slice ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` if *sub* is not found.\n\n Note: The ``find()`` method should be used only if you need to know the\n position of *sub*. To check if *sub* is a substring or not, use\n the ``in`` operator:\n\n >>> \'Py\' in \'Python\'\n True\n\nstr.format(*args, **kwargs)\n\n Perform a string formatting operation. The string on which this\n method is called can contain literal text or replacement fields\n delimited by braces ``{}``. Each replacement field contains either\n the numeric index of a positional argument, or the name of a\n keyword argument. Returns a copy of the string where each\n replacement field is replaced with the string value of the\n corresponding argument.\n\n >>> "The sum of 1 + 2 is {0}".format(1+2)\n \'The sum of 1 + 2 is 3\'\n\n See *Format String Syntax* for a description of the various\n formatting options that can be specified in format strings.\n\n This method of string formatting is the new standard in Python 3,\n and should be preferred to the ``%`` formatting described in\n *String Formatting Operations* in new code.\n\n New in version 2.6.\n\nstr.index(sub[, start[, end]])\n\n Like ``find()``, but raise ``ValueError`` when the substring is not\n found.\n\nstr.isalnum()\n\n Return true if all characters in the string are alphanumeric and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isalpha()\n\n Return true if all characters in the string are alphabetic and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isdigit()\n\n Return true if all characters in the string are digits and there is\n at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.islower()\n\n Return true if all cased characters [4] in the string are lowercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isspace()\n\n Return true if there are only whitespace characters in the string\n and there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.istitle()\n\n Return true if the string is a titlecased string and there is at\n least one character, for example uppercase characters may only\n follow uncased characters and lowercase characters only cased ones.\n Return false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isupper()\n\n Return true if all cased characters [4] in the string are uppercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.join(iterable)\n\n Return a string which is the concatenation of the strings in the\n *iterable* *iterable*. The separator between elements is the\n string providing this method.\n\nstr.ljust(width[, fillchar])\n\n Return the string left justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.lower()\n\n Return a copy of the string with all the cased characters [4]\n converted to lowercase.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.lstrip([chars])\n\n Return a copy of the string with leading characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a prefix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.lstrip()\n \'spacious \'\n >>> \'www.example.com\'.lstrip(\'cmowz.\')\n \'example.com\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.partition(sep)\n\n Split the string at the first occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing the string itself, followed by\n two empty strings.\n\n New in version 2.5.\n\nstr.replace(old, new[, count])\n\n Return a copy of the string with all occurrences of substring *old*\n replaced by *new*. If the optional argument *count* is given, only\n the first *count* occurrences are replaced.\n\nstr.rfind(sub[, start[, end]])\n\n Return the highest index in the string where substring *sub* is\n found, such that *sub* is contained within ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` on failure.\n\nstr.rindex(sub[, start[, end]])\n\n Like ``rfind()`` but raises ``ValueError`` when the substring *sub*\n is not found.\n\nstr.rjust(width[, fillchar])\n\n Return the string right justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.rpartition(sep)\n\n Split the string at the last occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing two empty strings, followed by\n the string itself.\n\n New in version 2.5.\n\nstr.rsplit([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit* splits\n are done, the *rightmost* ones. If *sep* is not specified or\n ``None``, any whitespace string is a separator. Except for\n splitting from the right, ``rsplit()`` behaves like ``split()``\n which is described in detail below.\n\n New in version 2.4.\n\nstr.rstrip([chars])\n\n Return a copy of the string with trailing characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a suffix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.rstrip()\n \' spacious\'\n >>> \'mississippi\'.rstrip(\'ipz\')\n \'mississ\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.split([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit*\n splits are done (thus, the list will have at most ``maxsplit+1``\n elements). If *maxsplit* is not specified or ``-1``, then there is\n no limit on the number of splits (all possible splits are made).\n\n If *sep* is given, consecutive delimiters are not grouped together\n and are deemed to delimit empty strings (for example,\n ``\'1,,2\'.split(\',\')`` returns ``[\'1\', \'\', \'2\']``). The *sep*\n argument may consist of multiple characters (for example,\n ``\'1<>2<>3\'.split(\'<>\')`` returns ``[\'1\', \'2\', \'3\']``). Splitting\n an empty string with a specified separator returns ``[\'\']``.\n\n If *sep* is not specified or is ``None``, a different splitting\n algorithm is applied: runs of consecutive whitespace are regarded\n as a single separator, and the result will contain no empty strings\n at the start or end if the string has leading or trailing\n whitespace. Consequently, splitting an empty string or a string\n consisting of just whitespace with a ``None`` separator returns\n ``[]``.\n\n For example, ``\' 1 2 3 \'.split()`` returns ``[\'1\', \'2\', \'3\']``,\n and ``\' 1 2 3 \'.split(None, 1)`` returns ``[\'1\', \'2 3 \']``.\n\nstr.splitlines([keepends])\n\n Return a list of the lines in the string, breaking at line\n boundaries. This method uses the *universal newlines* approach to\n splitting lines. Line breaks are not included in the resulting list\n unless *keepends* is given and true.\n\n For example, ``\'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()`` returns\n ``[\'ab c\', \'\', \'de fg\', \'kl\']``, while the same call with\n ``splitlines(True)`` returns ``[\'ab c\\n\', \'\\n\', \'de fg\\r\',\n \'kl\\r\\n\']``.\n\n Unlike ``split()`` when a delimiter string *sep* is given, this\n method returns an empty list for the empty string, and a terminal\n line break does not result in an extra line.\n\nstr.startswith(prefix[, start[, end]])\n\n Return ``True`` if string starts with the *prefix*, otherwise\n return ``False``. *prefix* can also be a tuple of prefixes to look\n for. With optional *start*, test string beginning at that\n position. With optional *end*, stop comparing string at that\n position.\n\n Changed in version 2.5: Accept tuples as *prefix*.\n\nstr.strip([chars])\n\n Return a copy of the string with the leading and trailing\n characters removed. The *chars* argument is a string specifying the\n set of characters to be removed. If omitted or ``None``, the\n *chars* argument defaults to removing whitespace. The *chars*\n argument is not a prefix or suffix; rather, all combinations of its\n values are stripped:\n\n >>> \' spacious \'.strip()\n \'spacious\'\n >>> \'www.example.com\'.strip(\'cmowz.\')\n \'example\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.swapcase()\n\n Return a copy of the string with uppercase characters converted to\n lowercase and vice versa.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.title()\n\n Return a titlecased version of the string where words start with an\n uppercase character and the remaining characters are lowercase.\n\n The algorithm uses a simple language-independent definition of a\n word as groups of consecutive letters. The definition works in\n many contexts but it means that apostrophes in contractions and\n possessives form word boundaries, which may not be the desired\n result:\n\n >>> "they\'re bill\'s friends from the UK".title()\n "They\'Re Bill\'S Friends From The Uk"\n\n A workaround for apostrophes can be constructed using regular\n expressions:\n\n >>> import re\n >>> def titlecase(s):\n ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n ... lambda mo: mo.group(0)[0].upper() +\n ... mo.group(0)[1:].lower(),\n ... s)\n ...\n >>> titlecase("they\'re bill\'s friends.")\n "They\'re Bill\'s Friends."\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.translate(table[, deletechars])\n\n Return a copy of the string where all characters occurring in the\n optional argument *deletechars* are removed, and the remaining\n characters have been mapped through the given translation table,\n which must be a string of length 256.\n\n You can use the ``maketrans()`` helper function in the ``string``\n module to create a translation table. For string objects, set the\n *table* argument to ``None`` for translations that only delete\n characters:\n\n >>> \'read this short text\'.translate(None, \'aeiou\')\n \'rd ths shrt txt\'\n\n New in version 2.6: Support for a ``None`` *table* argument.\n\n For Unicode objects, the ``translate()`` method does not accept the\n optional *deletechars* argument. Instead, it returns a copy of the\n *s* where all characters have been mapped through the given\n translation table which must be a mapping of Unicode ordinals to\n Unicode ordinals, Unicode strings or ``None``. Unmapped characters\n are left untouched. Characters mapped to ``None`` are deleted.\n Note, a more flexible approach is to create a custom character\n mapping codec using the ``codecs`` module (see ``encodings.cp1251``\n for an example).\n\nstr.upper()\n\n Return a copy of the string with all the cased characters [4]\n converted to uppercase. Note that ``str.upper().isupper()`` might\n be ``False`` if ``s`` contains uncased characters or if the Unicode\n category of the resulting character(s) is not "Lu" (Letter,\n uppercase), but e.g. "Lt" (Letter, titlecase).\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.zfill(width)\n\n Return the numeric string left filled with zeros in a string of\n length *width*. A sign prefix is handled correctly. The original\n string is returned if *width* is less than or equal to ``len(s)``.\n\n New in version 2.2.2.\n\nThe following methods are present only on unicode objects:\n\nunicode.isnumeric()\n\n Return ``True`` if there are only numeric characters in S,\n ``False`` otherwise. Numeric characters include digit characters,\n and all characters that have the Unicode numeric value property,\n e.g. U+2155, VULGAR FRACTION ONE FIFTH.\n\nunicode.isdecimal()\n\n Return ``True`` if there are only decimal characters in S,\n ``False`` otherwise. Decimal characters include digit characters,\n and all characters that can be used to form decimal-radix numbers,\n e.g. U+0660, ARABIC-INDIC DIGIT ZERO.\n\n\nString Formatting Operations\n============================\n\nString and Unicode objects have one unique built-in operation: the\n``%`` operator (modulo). This is also known as the string\n*formatting* or *interpolation* operator. Given ``format % values``\n(where *format* is a string or Unicode object), ``%`` conversion\nspecifications in *format* are replaced with zero or more elements of\n*values*. The effect is similar to the using ``sprintf()`` in the C\nlanguage. If *format* is a Unicode object, or if any of the objects\nbeing converted using the ``%s`` conversion are Unicode objects, the\nresult will also be a Unicode object.\n\nIf *format* requires a single argument, *values* may be a single non-\ntuple object. [5] Otherwise, *values* must be a tuple with exactly\nthe number of items specified by the format string, or a single\nmapping object (for example, a dictionary).\n\nA conversion specifier contains two or more characters and has the\nfollowing components, which must occur in this order:\n\n1. The ``\'%\'`` character, which marks the start of the specifier.\n\n2. Mapping key (optional), consisting of a parenthesised sequence of\n characters (for example, ``(somename)``).\n\n3. Conversion flags (optional), which affect the result of some\n conversion types.\n\n4. Minimum field width (optional). If specified as an ``\'*\'``\n (asterisk), the actual width is read from the next element of the\n tuple in *values*, and the object to convert comes after the\n minimum field width and optional precision.\n\n5. Precision (optional), given as a ``\'.\'`` (dot) followed by the\n precision. If specified as ``\'*\'`` (an asterisk), the actual width\n is read from the next element of the tuple in *values*, and the\n value to convert comes after the precision.\n\n6. Length modifier (optional).\n\n7. Conversion type.\n\nWhen the right argument is a dictionary (or other mapping type), then\nthe formats in the string *must* include a parenthesised mapping key\ninto that dictionary inserted immediately after the ``\'%\'`` character.\nThe mapping key selects the value to be formatted from the mapping.\nFor example:\n\n>>> print \'%(language)s has %(number)03d quote types.\' % \\\n... {"language": "Python", "number": 2}\nPython has 002 quote types.\n\nIn this case no ``*`` specifiers may occur in a format (since they\nrequire a sequential parameter list).\n\nThe conversion flag characters are:\n\n+-----------+-----------------------------------------------------------------------+\n| Flag | Meaning |\n+===========+=======================================================================+\n| ``\'#\'`` | The value conversion will use the "alternate form" (where defined |\n| | below). |\n+-----------+-----------------------------------------------------------------------+\n| ``\'0\'`` | The conversion will be zero padded for numeric values. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'-\'`` | The converted value is left adjusted (overrides the ``\'0\'`` |\n| | conversion if both are given). |\n+-----------+-----------------------------------------------------------------------+\n| ``\' \'`` | (a space) A blank should be left before a positive number (or empty |\n| | string) produced by a signed conversion. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'+\'`` | A sign character (``\'+\'`` or ``\'-\'``) will precede the conversion |\n| | (overrides a "space" flag). |\n+-----------+-----------------------------------------------------------------------+\n\nA length modifier (``h``, ``l``, or ``L``) may be present, but is\nignored as it is not necessary for Python -- so e.g. ``%ld`` is\nidentical to ``%d``.\n\nThe conversion types are:\n\n+--------------+-------------------------------------------------------+---------+\n| Conversion | Meaning | Notes |\n+==============+=======================================================+=========+\n| ``\'d\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'i\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'o\'`` | Signed octal value. | (1) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'u\'`` | Obsolete type -- it is identical to ``\'d\'``. | (7) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'x\'`` | Signed hexadecimal (lowercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'X\'`` | Signed hexadecimal (uppercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'e\'`` | Floating point exponential format (lowercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'E\'`` | Floating point exponential format (uppercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'f\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'F\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'g\'`` | Floating point format. Uses lowercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'G\'`` | Floating point format. Uses uppercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'c\'`` | Single character (accepts integer or single character | |\n| | string). | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'r\'`` | String (converts any Python object using *repr()*). | (5) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'s\'`` | String (converts any Python object using ``str()``). | (6) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'%\'`` | No argument is converted, results in a ``\'%\'`` | |\n| | character in the result. | |\n+--------------+-------------------------------------------------------+---------+\n\nNotes:\n\n1. The alternate form causes a leading zero (``\'0\'``) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n2. The alternate form causes a leading ``\'0x\'`` or ``\'0X\'`` (depending\n on whether the ``\'x\'`` or ``\'X\'`` format was used) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n3. The alternate form causes the result to always contain a decimal\n point, even if no digits follow it.\n\n The precision determines the number of digits after the decimal\n point and defaults to 6.\n\n4. The alternate form causes the result to always contain a decimal\n point, and trailing zeroes are not removed as they would otherwise\n be.\n\n The precision determines the number of significant digits before\n and after the decimal point and defaults to 6.\n\n5. The ``%r`` conversion was added in Python 2.0.\n\n The precision determines the maximal number of characters used.\n\n6. If the object or format provided is a ``unicode`` string, the\n resulting string will also be ``unicode``.\n\n The precision determines the maximal number of characters used.\n\n7. See **PEP 237**.\n\nSince Python strings have an explicit length, ``%s`` conversions do\nnot assume that ``\'\\0\'`` is the end of the string.\n\nChanged in version 2.7: ``%f`` conversions for numbers whose absolute\nvalue is over 1e50 are no longer replaced by ``%g`` conversions.\n\nAdditional string operations are defined in standard modules\n``string`` and ``re``.\n\n\nXRange Type\n===========\n\nThe ``xrange`` type is an immutable sequence which is commonly used\nfor looping. The advantage of the ``xrange`` type is that an\n``xrange`` object will always take the same amount of memory, no\nmatter the size of the range it represents. There are no consistent\nperformance advantages.\n\nXRange objects have very little behavior: they only support indexing,\niteration, and the ``len()`` function.\n\n\nMutable Sequence Types\n======================\n\nList and ``bytearray`` objects support additional operations that\nallow in-place modification of the object. Other mutable sequence\ntypes (when added to the language) should also support these\noperations. Strings and tuples are immutable sequence types: such\nobjects cannot be modified once created. The following operations are\ndefined on mutable sequence types (where *x* is an arbitrary object):\n\n+--------------------------------+----------------------------------+-----------------------+\n| Operation | Result | Notes |\n+================================+==================================+=======================+\n| ``s[i] = x`` | item *i* of *s* is replaced by | |\n| | *x* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j] = t`` | slice of *s* from *i* to *j* is | |\n| | replaced by the contents of the | |\n| | iterable *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j]`` | same as ``s[i:j] = []`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j:k] = t`` | the elements of ``s[i:j:k]`` are | (1) |\n| | replaced by those of *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j:k]`` | removes the elements of | |\n| | ``s[i:j:k]`` from the list | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.append(x)`` | same as ``s[len(s):len(s)] = | (2) |\n| | [x]`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.extend(x)`` | same as ``s[len(s):len(s)] = x`` | (3) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.count(x)`` | return number of *i*\'s for which | |\n| | ``s[i] == x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.index(x[, i[, j]])`` | return smallest *k* such that | (4) |\n| | ``s[k] == x`` and ``i <= k < j`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.insert(i, x)`` | same as ``s[i:i] = [x]`` | (5) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.pop([i])`` | same as ``x = s[i]; del s[i]; | (6) |\n| | return x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.remove(x)`` | same as ``del s[s.index(x)]`` | (4) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.reverse()`` | reverses the items of *s* in | (7) |\n| | place | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.sort([cmp[, key[, | sort the items of *s* in place | (7)(8)(9)(10) |\n| reverse]]])`` | | |\n+--------------------------------+----------------------------------+-----------------------+\n\nNotes:\n\n1. *t* must have the same length as the slice it is replacing.\n\n2. The C implementation of Python has historically accepted multiple\n parameters and implicitly joined them into a tuple; this no longer\n works in Python 2.0. Use of this misfeature has been deprecated\n since Python 1.4.\n\n3. *x* can be any iterable object.\n\n4. Raises ``ValueError`` when *x* is not found in *s*. When a negative\n index is passed as the second or third parameter to the ``index()``\n method, the list length is added, as for slice indices. If it is\n still negative, it is truncated to zero, as for slice indices.\n\n Changed in version 2.3: Previously, ``index()`` didn\'t have\n arguments for specifying start and stop positions.\n\n5. When a negative index is passed as the first parameter to the\n ``insert()`` method, the list length is added, as for slice\n indices. If it is still negative, it is truncated to zero, as for\n slice indices.\n\n Changed in version 2.3: Previously, all negative indices were\n truncated to zero.\n\n6. The ``pop()`` method is only supported by the list and array types.\n The optional argument *i* defaults to ``-1``, so that by default\n the last item is removed and returned.\n\n7. The ``sort()`` and ``reverse()`` methods modify the list in place\n for economy of space when sorting or reversing a large list. To\n remind you that they operate by side effect, they don\'t return the\n sorted or reversed list.\n\n8. The ``sort()`` method takes optional arguments for controlling the\n comparisons.\n\n *cmp* specifies a custom comparison function of two arguments (list\n items) which should return a negative, zero or positive number\n depending on whether the first argument is considered smaller than,\n equal to, or larger than the second argument: ``cmp=lambda x,y:\n cmp(x.lower(), y.lower())``. The default value is ``None``.\n\n *key* specifies a function of one argument that is used to extract\n a comparison key from each list element: ``key=str.lower``. The\n default value is ``None``.\n\n *reverse* is a boolean value. If set to ``True``, then the list\n elements are sorted as if each comparison were reversed.\n\n In general, the *key* and *reverse* conversion processes are much\n faster than specifying an equivalent *cmp* function. This is\n because *cmp* is called multiple times for each list element while\n *key* and *reverse* touch each element only once. Use\n ``functools.cmp_to_key()`` to convert an old-style *cmp* function\n to a *key* function.\n\n Changed in version 2.3: Support for ``None`` as an equivalent to\n omitting *cmp* was added.\n\n Changed in version 2.4: Support for *key* and *reverse* was added.\n\n9. Starting with Python 2.3, the ``sort()`` method is guaranteed to be\n stable. A sort is stable if it guarantees not to change the\n relative order of elements that compare equal --- this is helpful\n for sorting in multiple passes (for example, sort by department,\n then by salary grade).\n\n10. **CPython implementation detail:** While a list is being sorted,\n the effect of attempting to mutate, or even inspect, the list is\n undefined. The C implementation of Python 2.3 and newer makes the\n list appear empty for the duration, and raises ``ValueError`` if\n it can detect that the list has been mutated during a sort.\n',
/prebuilts/gdb/linux-x86/lib/python2.7/pydoc_data/
H A Dtopics.py18 'calls': '\nCalls\n*****\n\nA call calls a callable object (e.g., a *function*) with a possibly\nempty series of *arguments*:\n\n call ::= primary "(" [argument_list [","]\n | expression genexpr_for] ")"\n argument_list ::= positional_arguments ["," keyword_arguments]\n ["," "*" expression] ["," keyword_arguments]\n ["," "**" expression]\n | keyword_arguments ["," "*" expression]\n ["," "**" expression]\n | "*" expression ["," "*" expression] ["," "**" expression]\n | "**" expression\n positional_arguments ::= expression ("," expression)*\n keyword_arguments ::= keyword_item ("," keyword_item)*\n keyword_item ::= identifier "=" expression\n\nA trailing comma may be present after the positional and keyword\narguments but does not affect the semantics.\n\nThe primary must evaluate to a callable object (user-defined\nfunctions, built-in functions, methods of built-in objects, class\nobjects, methods of class instances, and certain class instances\nthemselves are callable; extensions may define additional callable\nobject types). All argument expressions are evaluated before the call\nis attempted. Please refer to section *Function definitions* for the\nsyntax of formal *parameter* lists.\n\nIf keyword arguments are present, they are first converted to\npositional arguments, as follows. First, a list of unfilled slots is\ncreated for the formal parameters. If there are N positional\narguments, they are placed in the first N slots. Next, for each\nkeyword argument, the identifier is used to determine the\ncorresponding slot (if the identifier is the same as the first formal\nparameter name, the first slot is used, and so on). If the slot is\nalready filled, a ``TypeError`` exception is raised. Otherwise, the\nvalue of the argument is placed in the slot, filling it (even if the\nexpression is ``None``, it fills the slot). When all arguments have\nbeen processed, the slots that are still unfilled are filled with the\ncorresponding default value from the function definition. (Default\nvalues are calculated, once, when the function is defined; thus, a\nmutable object such as a list or dictionary used as default value will\nbe shared by all calls that don\'t specify an argument value for the\ncorresponding slot; this should usually be avoided.) If there are any\nunfilled slots for which no default value is specified, a\n``TypeError`` exception is raised. Otherwise, the list of filled\nslots is used as the argument list for the call.\n\n**CPython implementation detail:** An implementation may provide\nbuilt-in functions whose positional parameters do not have names, even\nif they are \'named\' for the purpose of documentation, and which\ntherefore cannot be supplied by keyword. In CPython, this is the case\nfor functions implemented in C that use ``PyArg_ParseTuple()`` to\nparse their arguments.\n\nIf there are more positional arguments than there are formal parameter\nslots, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``*identifier`` is present; in this case, that formal\nparameter receives a tuple containing the excess positional arguments\n(or an empty tuple if there were no excess positional arguments).\n\nIf any keyword argument does not correspond to a formal parameter\nname, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``**identifier`` is present; in this case, that\nformal parameter receives a dictionary containing the excess keyword\narguments (using the keywords as keys and the argument values as\ncorresponding values), or a (new) empty dictionary if there were no\nexcess keyword arguments.\n\nIf the syntax ``*expression`` appears in the function call,\n``expression`` must evaluate to an iterable. Elements from this\niterable are treated as if they were additional positional arguments;\nif there are positional arguments *x1*, ..., *xN*, and ``expression``\nevaluates to a sequence *y1*, ..., *yM*, this is equivalent to a call\nwith M+N positional arguments *x1*, ..., *xN*, *y1*, ..., *yM*.\n\nA consequence of this is that although the ``*expression`` syntax may\nappear *after* some keyword arguments, it is processed *before* the\nkeyword arguments (and the ``**expression`` argument, if any -- see\nbelow). So:\n\n >>> def f(a, b):\n ... print a, b\n ...\n >>> f(b=1, *(2,))\n 2 1\n >>> f(a=1, *(2,))\n Traceback (most recent call last):\n File "<stdin>", line 1, in ?\n TypeError: f() got multiple values for keyword argument \'a\'\n >>> f(1, *(2,))\n 1 2\n\nIt is unusual for both keyword arguments and the ``*expression``\nsyntax to be used in the same call, so in practice this confusion does\nnot arise.\n\nIf the syntax ``**expression`` appears in the function call,\n``expression`` must evaluate to a mapping, the contents of which are\ntreated as additional keyword arguments. In the case of a keyword\nappearing in both ``expression`` and as an explicit keyword argument,\na ``TypeError`` exception is raised.\n\nFormal parameters using the syntax ``*identifier`` or ``**identifier``\ncannot be used as positional argument slots or as keyword argument\nnames. Formal parameters using the syntax ``(sublist)`` cannot be\nused as keyword argument names; the outermost sublist corresponds to a\nsingle unnamed argument slot, and the argument value is assigned to\nthe sublist using the usual tuple assignment rules after all other\nparameter processing is done.\n\nA call always returns some value, possibly ``None``, unless it raises\nan exception. How this value is computed depends on the type of the\ncallable object.\n\nIf it is---\n\na user-defined function:\n The code block for the function is executed, passing it the\n argument list. The first thing the code block will do is bind the\n formal parameters to the arguments; this is described in section\n *Function definitions*. When the code block executes a ``return``\n statement, this specifies the return value of the function call.\n\na built-in function or method:\n The result is up to the interpreter; see *Built-in Functions* for\n the descriptions of built-in functions and methods.\n\na class object:\n A new instance of that class is returned.\n\na class instance method:\n The corresponding user-defined function is called, with an argument\n list that is one longer than the argument list of the call: the\n instance becomes the first argument.\n\na class instance:\n The class must define a ``__call__()`` method; the effect is then\n the same as if that method was called.\n',
21 'compound': '\nCompound statements\n*******************\n\nCompound statements contain (groups of) other statements; they affect\nor control the execution of those other statements in some way. In\ngeneral, compound statements span multiple lines, although in simple\nincarnations a whole compound statement may be contained in one line.\n\nThe ``if``, ``while`` and ``for`` statements implement traditional\ncontrol flow constructs. ``try`` specifies exception handlers and/or\ncleanup code for a group of statements. Function and class\ndefinitions are also syntactically compound statements.\n\nCompound statements consist of one or more \'clauses.\' A clause\nconsists of a header and a \'suite.\' The clause headers of a\nparticular compound statement are all at the same indentation level.\nEach clause header begins with a uniquely identifying keyword and ends\nwith a colon. A suite is a group of statements controlled by a\nclause. A suite can be one or more semicolon-separated simple\nstatements on the same line as the header, following the header\'s\ncolon, or it can be one or more indented statements on subsequent\nlines. Only the latter form of suite can contain nested compound\nstatements; the following is illegal, mostly because it wouldn\'t be\nclear to which ``if`` clause a following ``else`` clause would belong:\n\n if test1: if test2: print x\n\nAlso note that the semicolon binds tighter than the colon in this\ncontext, so that in the following example, either all or none of the\n``print`` statements are executed:\n\n if x < y < z: print x; print y; print z\n\nSummarizing:\n\n compound_stmt ::= if_stmt\n | while_stmt\n | for_stmt\n | try_stmt\n | with_stmt\n | funcdef\n | classdef\n | decorated\n suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT\n statement ::= stmt_list NEWLINE | compound_stmt\n stmt_list ::= simple_stmt (";" simple_stmt)* [";"]\n\nNote that statements always end in a ``NEWLINE`` possibly followed by\na ``DEDENT``. Also note that optional continuation clauses always\nbegin with a keyword that cannot start a statement, thus there are no\nambiguities (the \'dangling ``else``\' problem is solved in Python by\nrequiring nested ``if`` statements to be indented).\n\nThe formatting of the grammar rules in the following sections places\neach clause on a separate line for clarity.\n\n\nThe ``if`` statement\n====================\n\nThe ``if`` statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section *Boolean operations*\nfor the definition of true and false); then that suite is executed\n(and no other part of the ``if`` statement is executed or evaluated).\nIf all expressions are false, the suite of the ``else`` clause, if\npresent, is executed.\n\n\nThe ``while`` statement\n=======================\n\nThe ``while`` statement is used for repeated execution as long as an\nexpression is true:\n\n while_stmt ::= "while" expression ":" suite\n ["else" ":" suite]\n\nThis repeatedly tests the expression and, if it is true, executes the\nfirst suite; if the expression is false (which may be the first time\nit is tested) the suite of the ``else`` clause, if present, is\nexecuted and the loop terminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ngoes back to testing the expression.\n\n\nThe ``for`` statement\n=====================\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n\n\nThe ``try`` statement\n=====================\n\nThe ``try`` statement specifies exception handlers and/or cleanup code\nfor a group of statements:\n\n try_stmt ::= try1_stmt | try2_stmt\n try1_stmt ::= "try" ":" suite\n ("except" [expression [("as" | ",") target]] ":" suite)+\n ["else" ":" suite]\n ["finally" ":" suite]\n try2_stmt ::= "try" ":" suite\n "finally" ":" suite\n\nChanged in version 2.5: In previous versions of Python,\n``try``...``except``...``finally`` did not work. ``try``...``except``\nhad to be nested in ``try``...``finally``.\n\nThe ``except`` clause(s) specify one or more exception handlers. When\nno exception occurs in the ``try`` clause, no exception handler is\nexecuted. When an exception occurs in the ``try`` suite, a search for\nan exception handler is started. This search inspects the except\nclauses in turn until one is found that matches the exception. An\nexpression-less except clause, if present, must be last; it matches\nany exception. For an except clause with an expression, that\nexpression is evaluated, and the clause matches the exception if the\nresulting object is "compatible" with the exception. An object is\ncompatible with an exception if it is the class or a base class of the\nexception object, or a tuple containing an item compatible with the\nexception.\n\nIf no except clause matches the exception, the search for an exception\nhandler continues in the surrounding code and on the invocation stack.\n[1]\n\nIf the evaluation of an expression in the header of an except clause\nraises an exception, the original search for a handler is canceled and\na search starts for the new exception in the surrounding code and on\nthe call stack (it is treated as if the entire ``try`` statement\nraised the exception).\n\nWhen a matching except clause is found, the exception is assigned to\nthe target specified in that except clause, if present, and the except\nclause\'s suite is executed. All except clauses must have an\nexecutable block. When the end of this block is reached, execution\ncontinues normally after the entire try statement. (This means that\nif two nested handlers exist for the same exception, and the exception\noccurs in the try clause of the inner handler, the outer handler will\nnot handle the exception.)\n\nBefore an except clause\'s suite is executed, details about the\nexception are assigned to three variables in the ``sys`` module:\n``sys.exc_type`` receives the object identifying the exception;\n``sys.exc_value`` receives the exception\'s parameter;\n``sys.exc_traceback`` receives a traceback object (see section *The\nstandard type hierarchy*) identifying the point in the program where\nthe exception occurred. These details are also available through the\n``sys.exc_info()`` function, which returns a tuple ``(exc_type,\nexc_value, exc_traceback)``. Use of the corresponding variables is\ndeprecated in favor of this function, since their use is unsafe in a\nthreaded program. As of Python 1.5, the variables are restored to\ntheir previous values (before the call) when returning from a function\nthat handled an exception.\n\nThe optional ``else`` clause is executed if and when control flows off\nthe end of the ``try`` clause. [2] Exceptions in the ``else`` clause\nare not handled by the preceding ``except`` clauses.\n\nIf ``finally`` is present, it specifies a \'cleanup\' handler. The\n``try`` clause is executed, including any ``except`` and ``else``\nclauses. If an exception occurs in any of the clauses and is not\nhandled, the exception is temporarily saved. The ``finally`` clause is\nexecuted. If there is a saved exception, it is re-raised at the end\nof the ``finally`` clause. If the ``finally`` clause raises another\nexception or executes a ``return`` or ``break`` statement, the saved\nexception is discarded:\n\n def f():\n try:\n 1/0\n finally:\n return 42\n\n >>> f()\n 42\n\nThe exception information is not available to the program during\nexecution of the ``finally`` clause.\n\nWhen a ``return``, ``break`` or ``continue`` statement is executed in\nthe ``try`` suite of a ``try``...``finally`` statement, the\n``finally`` clause is also executed \'on the way out.\' A ``continue``\nstatement is illegal in the ``finally`` clause. (The reason is a\nproblem with the current implementation --- this restriction may be\nlifted in the future).\n\nAdditional information on exceptions can be found in section\n*Exceptions*, and information on using the ``raise`` statement to\ngenerate exceptions may be found in section *The raise statement*.\n\n\nThe ``with`` statement\n======================\n\nNew in version 2.5.\n\nThe ``with`` statement is used to wrap the execution of a block with\nmethods defined by a context manager (see section *With Statement\nContext Managers*). This allows common\n``try``...``except``...``finally`` usage patterns to be encapsulated\nfor convenient reuse.\n\n with_stmt ::= "with" with_item ("," with_item)* ":" suite\n with_item ::= expression ["as" target]\n\nThe execution of the ``with`` statement with one "item" proceeds as\nfollows:\n\n1. The context expression (the expression given in the ``with_item``)\n is evaluated to obtain a context manager.\n\n2. The context manager\'s ``__exit__()`` is loaded for later use.\n\n3. The context manager\'s ``__enter__()`` method is invoked.\n\n4. If a target was included in the ``with`` statement, the return\n value from ``__enter__()`` is assigned to it.\n\n Note: The ``with`` statement guarantees that if the ``__enter__()``\n method returns without an error, then ``__exit__()`` will always\n be called. Thus, if an error occurs during the assignment to the\n target list, it will be treated the same as an error occurring\n within the suite would be. See step 6 below.\n\n5. The suite is executed.\n\n6. The context manager\'s ``__exit__()`` method is invoked. If an\n exception caused the suite to be exited, its type, value, and\n traceback are passed as arguments to ``__exit__()``. Otherwise,\n three ``None`` arguments are supplied.\n\n If the suite was exited due to an exception, and the return value\n from the ``__exit__()`` method was false, the exception is\n reraised. If the return value was true, the exception is\n suppressed, and execution continues with the statement following\n the ``with`` statement.\n\n If the suite was exited for any reason other than an exception, the\n return value from ``__exit__()`` is ignored, and execution proceeds\n at the normal location for the kind of exit that was taken.\n\nWith more than one item, the context managers are processed as if\nmultiple ``with`` statements were nested:\n\n with A() as a, B() as b:\n suite\n\nis equivalent to\n\n with A() as a:\n with B() as b:\n suite\n\nNote: In Python 2.5, the ``with`` statement is only allowed when the\n ``with_statement`` feature has been enabled. It is always enabled\n in Python 2.6.\n\nChanged in version 2.7: Support for multiple context expressions.\n\nSee also:\n\n **PEP 0343** - The "with" statement\n The specification, background, and examples for the Python\n ``with`` statement.\n\n\nFunction definitions\n====================\n\nA function definition defines a user-defined function object (see\nsection *The standard type hierarchy*):\n\n decorated ::= decorators (classdef | funcdef)\n decorators ::= decorator+\n decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE\n funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite\n dotted_name ::= identifier ("." identifier)*\n parameter_list ::= (defparameter ",")*\n ( "*" identifier ["," "**" identifier]\n | "**" identifier\n | defparameter [","] )\n defparameter ::= parameter ["=" expression]\n sublist ::= parameter ("," parameter)* [","]\n parameter ::= identifier | "(" sublist ")"\n funcname ::= identifier\n\nA function definition is an executable statement. Its execution binds\nthe function name in the current local namespace to a function object\n(a wrapper around the executable code for the function). This\nfunction object contains a reference to the current global namespace\nas the global namespace to be used when the function is called.\n\nThe function definition does not execute the function body; this gets\nexecuted only when the function is called. [3]\n\nA function definition may be wrapped by one or more *decorator*\nexpressions. Decorator expressions are evaluated when the function is\ndefined, in the scope that contains the function definition. The\nresult must be a callable, which is invoked with the function object\nas the only argument. The returned value is bound to the function name\ninstead of the function object. Multiple decorators are applied in\nnested fashion. For example, the following code:\n\n @f1(arg)\n @f2\n def func(): pass\n\nis equivalent to:\n\n def func(): pass\n func = f1(arg)(f2(func))\n\nWhen one or more top-level *parameters* have the form *parameter*\n``=`` *expression*, the function is said to have "default parameter\nvalues." For a parameter with a default value, the corresponding\n*argument* may be omitted from a call, in which case the parameter\'s\ndefault value is substituted. If a parameter has a default value, all\nfollowing parameters must also have a default value --- this is a\nsyntactic restriction that is not expressed by the grammar.\n\n**Default parameter values are evaluated when the function definition\nis executed.** This means that the expression is evaluated once, when\nthe function is defined, and that the same "pre-computed" value is\nused for each call. This is especially important to understand when a\ndefault parameter is a mutable object, such as a list or a dictionary:\nif the function modifies the object (e.g. by appending an item to a\nlist), the default value is in effect modified. This is generally not\nwhat was intended. A way around this is to use ``None`` as the\ndefault, and explicitly test for it in the body of the function, e.g.:\n\n def whats_on_the_telly(penguin=None):\n if penguin is None:\n penguin = []\n penguin.append("property of the zoo")\n return penguin\n\nFunction call semantics are described in more detail in section\n*Calls*. A function call always assigns values to all parameters\nmentioned in the parameter list, either from position arguments, from\nkeyword arguments, or from default values. If the form\n"``*identifier``" is present, it is initialized to a tuple receiving\nany excess positional parameters, defaulting to the empty tuple. If\nthe form "``**identifier``" is present, it is initialized to a new\ndictionary receiving any excess keyword arguments, defaulting to a new\nempty dictionary.\n\nIt is also possible to create anonymous functions (functions not bound\nto a name), for immediate use in expressions. This uses lambda forms,\ndescribed in section *Lambdas*. Note that the lambda form is merely a\nshorthand for a simplified function definition; a function defined in\na "``def``" statement can be passed around or assigned to another name\njust like a function defined by a lambda form. The "``def``" form is\nactually more powerful since it allows the execution of multiple\nstatements.\n\n**Programmer\'s note:** Functions are first-class objects. A "``def``"\nform executed inside a function definition defines a local function\nthat can be returned or passed around. Free variables used in the\nnested function can access the local variables of the function\ncontaining the def. See section *Naming and binding* for details.\n\n\nClass definitions\n=================\n\nA class definition defines a class object (see section *The standard\ntype hierarchy*):\n\n classdef ::= "class" classname [inheritance] ":" suite\n inheritance ::= "(" [expression_list] ")"\n classname ::= identifier\n\nA class definition is an executable statement. It first evaluates the\ninheritance list, if present. Each item in the inheritance list\nshould evaluate to a class object or class type which allows\nsubclassing. The class\'s suite is then executed in a new execution\nframe (see section *Naming and binding*), using a newly created local\nnamespace and the original global namespace. (Usually, the suite\ncontains only function definitions.) When the class\'s suite finishes\nexecution, its execution frame is discarded but its local namespace is\nsaved. [4] A class object is then created using the inheritance list\nfor the base classes and the saved local namespace for the attribute\ndictionary. The class name is bound to this class object in the\noriginal local namespace.\n\n**Programmer\'s note:** Variables defined in the class definition are\nclass variables; they are shared by all instances. To create instance\nvariables, they can be set in a method with ``self.name = value``.\nBoth class and instance variables are accessible through the notation\n"``self.name``", and an instance variable hides a class variable with\nthe same name when accessed in this way. Class variables can be used\nas defaults for instance variables, but using mutable values there can\nlead to unexpected results. For *new-style class*es, descriptors can\nbe used to create instance variables with different implementation\ndetails.\n\nClass definitions, like function definitions, may be wrapped by one or\nmore *decorator* expressions. The evaluation rules for the decorator\nexpressions are the same as for functions. The result must be a class\nobject, which is then bound to the class name.\n\n-[ Footnotes ]-\n\n[1] The exception is propagated to the invocation stack unless there\n is a ``finally`` clause which happens to raise another exception.\n That new exception causes the old one to be lost.\n\n[2] Currently, control "flows off the end" except in the case of an\n exception or the execution of a ``return``, ``continue``, or\n ``break`` statement.\n\n[3] A string literal appearing as the first statement in the function\n body is transformed into the function\'s ``__doc__`` attribute and\n therefore the function\'s *docstring*.\n\n[4] A string literal appearing as the first statement in the class\n body is transformed into the namespace\'s ``__doc__`` item and\n therefore the class\'s *docstring*.\n',
35 'for': '\nThe ``for`` statement\n*********************\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n',
38 'global': '\nThe ``global`` statement\n************************\n\n global_stmt ::= "global" identifier ("," identifier)*\n\nThe ``global`` statement is a declaration which holds for the entire\ncurrent code block. It means that the listed identifiers are to be\ninterpreted as globals. It would be impossible to assign to a global\nvariable without ``global``, although free variables may refer to\nglobals without being declared global.\n\nNames listed in a ``global`` statement must not be used in the same\ncode block textually preceding that ``global`` statement.\n\nNames listed in a ``global`` statement must not be defined as formal\nparameters or in a ``for`` loop control target, ``class`` definition,\nfunction definition, or ``import`` statement.\n\n**CPython implementation detail:** The current implementation does not\nenforce the latter two restrictions, but programs should not abuse\nthis freedom, as future implementations may enforce them or silently\nchange the meaning of the program.\n\n**Programmer\'s note:** the ``global`` is a directive to the parser.\nIt applies only to code parsed at the same time as the ``global``\nstatement. In particular, a ``global`` statement contained in an\n``exec`` statement does not affect the code block *containing* the\n``exec`` statement, and code contained in an ``exec`` statement is\nunaffected by ``global`` statements in the code containing the\n``exec`` statement. The same applies to the ``eval()``,\n``execfile()`` and ``compile()`` functions.\n',
51 'objects': '\nObjects, values and types\n*************************\n\n*Objects* are Python\'s abstraction for data. All data in a Python\nprogram is represented by objects or by relations between objects. (In\na sense, and in conformance to Von Neumann\'s model of a "stored\nprogram computer," code is also represented by objects.)\n\nEvery object has an identity, a type and a value. An object\'s\n*identity* never changes once it has been created; you may think of it\nas the object\'s address in memory. The \'``is``\' operator compares the\nidentity of two objects; the ``id()`` function returns an integer\nrepresenting its identity (currently implemented as its address). An\nobject\'s *type* is also unchangeable. [1] An object\'s type determines\nthe operations that the object supports (e.g., "does it have a\nlength?") and also defines the possible values for objects of that\ntype. The ``type()`` function returns an object\'s type (which is an\nobject itself). The *value* of some objects can change. Objects\nwhose value can change are said to be *mutable*; objects whose value\nis unchangeable once they are created are called *immutable*. (The\nvalue of an immutable container object that contains a reference to a\nmutable object can change when the latter\'s value is changed; however\nthe container is still considered immutable, because the collection of\nobjects it contains cannot be changed. So, immutability is not\nstrictly the same as having an unchangeable value, it is more subtle.)\nAn object\'s mutability is determined by its type; for instance,\nnumbers, strings and tuples are immutable, while dictionaries and\nlists are mutable.\n\nObjects are never explicitly destroyed; however, when they become\nunreachable they may be garbage-collected. An implementation is\nallowed to postpone garbage collection or omit it altogether --- it is\na matter of implementation quality how garbage collection is\nimplemented, as long as no objects are collected that are still\nreachable.\n\n**CPython implementation detail:** CPython currently uses a reference-\ncounting scheme with (optional) delayed detection of cyclically linked\ngarbage, which collects most objects as soon as they become\nunreachable, but is not guaranteed to collect garbage containing\ncircular references. See the documentation of the ``gc`` module for\ninformation on controlling the collection of cyclic garbage. Other\nimplementations act differently and CPython may change. Do not depend\non immediate finalization of objects when they become unreachable (ex:\nalways close files).\n\nNote that the use of the implementation\'s tracing or debugging\nfacilities may keep objects alive that would normally be collectable.\nAlso note that catching an exception with a \'``try``...``except``\'\nstatement may keep objects alive.\n\nSome objects contain references to "external" resources such as open\nfiles or windows. It is understood that these resources are freed\nwhen the object is garbage-collected, but since garbage collection is\nnot guaranteed to happen, such objects also provide an explicit way to\nrelease the external resource, usually a ``close()`` method. Programs\nare strongly recommended to explicitly close such objects. The\n\'``try``...``finally``\' statement provides a convenient way to do\nthis.\n\nSome objects contain references to other objects; these are called\n*containers*. Examples of containers are tuples, lists and\ndictionaries. The references are part of a container\'s value. In\nmost cases, when we talk about the value of a container, we imply the\nvalues, not the identities of the contained objects; however, when we\ntalk about the mutability of a container, only the identities of the\nimmediately contained objects are implied. So, if an immutable\ncontainer (like a tuple) contains a reference to a mutable object, its\nvalue changes if that mutable object is changed.\n\nTypes affect almost all aspects of object behavior. Even the\nimportance of object identity is affected in some sense: for immutable\ntypes, operations that compute new values may actually return a\nreference to any existing object with the same type and value, while\nfor mutable objects this is not allowed. E.g., after ``a = 1; b =\n1``, ``a`` and ``b`` may or may not refer to the same object with the\nvalue one, depending on the implementation, but after ``c = []; d =\n[]``, ``c`` and ``d`` are guaranteed to refer to two different,\nunique, newly created empty lists. (Note that ``c = d = []`` assigns\nthe same object to both ``c`` and ``d``.)\n',
72 'typesseq': '\nSequence Types --- ``str``, ``unicode``, ``list``, ``tuple``, ``bytearray``, ``buffer``, ``xrange``\n***************************************************************************************************\n\nThere are seven sequence types: strings, Unicode strings, lists,\ntuples, bytearrays, buffers, and xrange objects.\n\nFor other containers see the built in ``dict`` and ``set`` classes,\nand the ``collections`` module.\n\nString literals are written in single or double quotes: ``\'xyzzy\'``,\n``"frobozz"``. See *String literals* for more about string literals.\nUnicode strings are much like strings, but are specified in the syntax\nusing a preceding ``\'u\'`` character: ``u\'abc\'``, ``u"def"``. In\naddition to the functionality described here, there are also string-\nspecific methods described in the *String Methods* section. Lists are\nconstructed with square brackets, separating items with commas: ``[a,\nb, c]``. Tuples are constructed by the comma operator (not within\nsquare brackets), with or without enclosing parentheses, but an empty\ntuple must have the enclosing parentheses, such as ``a, b, c`` or\n``()``. A single item tuple must have a trailing comma, such as\n``(d,)``.\n\nBytearray objects are created with the built-in function\n``bytearray()``.\n\nBuffer objects are not directly supported by Python syntax, but can be\ncreated by calling the built-in function ``buffer()``. They don\'t\nsupport concatenation or repetition.\n\nObjects of type xrange are similar to buffers in that there is no\nspecific syntax to create them, but they are created using the\n``xrange()`` function. They don\'t support slicing, concatenation or\nrepetition, and using ``in``, ``not in``, ``min()`` or ``max()`` on\nthem is inefficient.\n\nMost sequence types support the following operations. The ``in`` and\n``not in`` operations have the same priorities as the comparison\noperations. The ``+`` and ``*`` operations have the same priority as\nthe corresponding numeric operations. [3] Additional methods are\nprovided for *Mutable Sequence Types*.\n\nThis table lists the sequence operations sorted in ascending priority\n(operations in the same box have the same priority). In the table,\n*s* and *t* are sequences of the same type; *n*, *i* and *j* are\nintegers:\n\n+--------------------+----------------------------------+------------+\n| Operation | Result | Notes |\n+====================+==================================+============+\n| ``x in s`` | ``True`` if an item of *s* is | (1) |\n| | equal to *x*, else ``False`` | |\n+--------------------+----------------------------------+------------+\n| ``x not in s`` | ``False`` if an item of *s* is | (1) |\n| | equal to *x*, else ``True`` | |\n+--------------------+----------------------------------+------------+\n| ``s + t`` | the concatenation of *s* and *t* | (6) |\n+--------------------+----------------------------------+------------+\n| ``s * n, n * s`` | *n* shallow copies of *s* | (2) |\n| | concatenated | |\n+--------------------+----------------------------------+------------+\n| ``s[i]`` | *i*th item of *s*, origin 0 | (3) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j]`` | slice of *s* from *i* to *j* | (3)(4) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j:k]`` | slice of *s* from *i* to *j* | (3)(5) |\n| | with step *k* | |\n+--------------------+----------------------------------+------------+\n| ``len(s)`` | length of *s* | |\n+--------------------+----------------------------------+------------+\n| ``min(s)`` | smallest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``max(s)`` | largest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.index(i)`` | index of the first occurence of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.count(i)`` | total number of occurences of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n\nSequence types also support comparisons. In particular, tuples and\nlists are compared lexicographically by comparing corresponding\nelements. This means that to compare equal, every element must compare\nequal and the two sequences must be of the same type and have the same\nlength. (For full details see *Comparisons* in the language\nreference.)\n\nNotes:\n\n1. When *s* is a string or Unicode string object the ``in`` and ``not\n in`` operations act like a substring test. In Python versions\n before 2.3, *x* had to be a string of length 1. In Python 2.3 and\n beyond, *x* may be a string of any length.\n\n2. Values of *n* less than ``0`` are treated as ``0`` (which yields an\n empty sequence of the same type as *s*). Note also that the copies\n are shallow; nested structures are not copied. This often haunts\n new Python programmers; consider:\n\n >>> lists = [[]] * 3\n >>> lists\n [[], [], []]\n >>> lists[0].append(3)\n >>> lists\n [[3], [3], [3]]\n\n What has happened is that ``[[]]`` is a one-element list containing\n an empty list, so all three elements of ``[[]] * 3`` are (pointers\n to) this single empty list. Modifying any of the elements of\n ``lists`` modifies this single list. You can create a list of\n different lists this way:\n\n >>> lists = [[] for i in range(3)]\n >>> lists[0].append(3)\n >>> lists[1].append(5)\n >>> lists[2].append(7)\n >>> lists\n [[3], [5], [7]]\n\n3. If *i* or *j* is negative, the index is relative to the end of the\n string: ``len(s) + i`` or ``len(s) + j`` is substituted. But note\n that ``-0`` is still ``0``.\n\n4. The slice of *s* from *i* to *j* is defined as the sequence of\n items with index *k* such that ``i <= k < j``. If *i* or *j* is\n greater than ``len(s)``, use ``len(s)``. If *i* is omitted or\n ``None``, use ``0``. If *j* is omitted or ``None``, use\n ``len(s)``. If *i* is greater than or equal to *j*, the slice is\n empty.\n\n5. The slice of *s* from *i* to *j* with step *k* is defined as the\n sequence of items with index ``x = i + n*k`` such that ``0 <= n <\n (j-i)/k``. In other words, the indices are ``i``, ``i+k``,\n ``i+2*k``, ``i+3*k`` and so on, stopping when *j* is reached (but\n never including *j*). If *i* or *j* is greater than ``len(s)``,\n use ``len(s)``. If *i* or *j* are omitted or ``None``, they become\n "end" values (which end depends on the sign of *k*). Note, *k*\n cannot be zero. If *k* is ``None``, it is treated like ``1``.\n\n6. **CPython implementation detail:** If *s* and *t* are both strings,\n some Python implementations such as CPython can usually perform an\n in-place optimization for assignments of the form ``s = s + t`` or\n ``s += t``. When applicable, this optimization makes quadratic\n run-time much less likely. This optimization is both version and\n implementation dependent. For performance sensitive code, it is\n preferable to use the ``str.join()`` method which assures\n consistent linear concatenation performance across versions and\n implementations.\n\n Changed in version 2.4: Formerly, string concatenation never\n occurred in-place.\n\n\nString Methods\n==============\n\nBelow are listed the string methods which both 8-bit strings and\nUnicode objects support. Some of them are also available on\n``bytearray`` objects.\n\nIn addition, Python\'s strings support the sequence type methods\ndescribed in the *Sequence Types --- str, unicode, list, tuple,\nbytearray, buffer, xrange* section. To output formatted strings use\ntemplate strings or the ``%`` operator described in the *String\nFormatting Operations* section. Also, see the ``re`` module for string\nfunctions based on regular expressions.\n\nstr.capitalize()\n\n Return a copy of the string with its first character capitalized\n and the rest lowercased.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.center(width[, fillchar])\n\n Return centered in a string of length *width*. Padding is done\n using the specified *fillchar* (default is a space).\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.count(sub[, start[, end]])\n\n Return the number of non-overlapping occurrences of substring *sub*\n in the range [*start*, *end*]. Optional arguments *start* and\n *end* are interpreted as in slice notation.\n\nstr.decode([encoding[, errors]])\n\n Decodes the string using the codec registered for *encoding*.\n *encoding* defaults to the default string encoding. *errors* may\n be given to set a different error handling scheme. The default is\n ``\'strict\'``, meaning that encoding errors raise ``UnicodeError``.\n Other possible values are ``\'ignore\'``, ``\'replace\'`` and any other\n name registered via ``codecs.register_error()``, see section *Codec\n Base Classes*.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for other error handling schemes\n added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.encode([encoding[, errors]])\n\n Return an encoded version of the string. Default encoding is the\n current default string encoding. *errors* may be given to set a\n different error handling scheme. The default for *errors* is\n ``\'strict\'``, meaning that encoding errors raise a\n ``UnicodeError``. Other possible values are ``\'ignore\'``,\n ``\'replace\'``, ``\'xmlcharrefreplace\'``, ``\'backslashreplace\'`` and\n any other name registered via ``codecs.register_error()``, see\n section *Codec Base Classes*. For a list of possible encodings, see\n section *Standard Encodings*.\n\n New in version 2.0.\n\n Changed in version 2.3: Support for ``\'xmlcharrefreplace\'`` and\n ``\'backslashreplace\'`` and other error handling schemes added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.endswith(suffix[, start[, end]])\n\n Return ``True`` if the string ends with the specified *suffix*,\n otherwise return ``False``. *suffix* can also be a tuple of\n suffixes to look for. With optional *start*, test beginning at\n that position. With optional *end*, stop comparing at that\n position.\n\n Changed in version 2.5: Accept tuples as *suffix*.\n\nstr.expandtabs([tabsize])\n\n Return a copy of the string where all tab characters are replaced\n by one or more spaces, depending on the current column and the\n given tab size. Tab positions occur every *tabsize* characters\n (default is 8, giving tab positions at columns 0, 8, 16 and so on).\n To expand the string, the current column is set to zero and the\n string is examined character by character. If the character is a\n tab (``\\t``), one or more space characters are inserted in the\n result until the current column is equal to the next tab position.\n (The tab character itself is not copied.) If the character is a\n newline (``\\n``) or return (``\\r``), it is copied and the current\n column is reset to zero. Any other character is copied unchanged\n and the current column is incremented by one regardless of how the\n character is represented when printed.\n\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs()\n \'01 012 0123 01234\'\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs(4)\n \'01 012 0123 01234\'\n\nstr.find(sub[, start[, end]])\n\n Return the lowest index in the string where substring *sub* is\n found, such that *sub* is contained in the slice ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` if *sub* is not found.\n\n Note: The ``find()`` method should be used only if you need to know the\n position of *sub*. To check if *sub* is a substring or not, use\n the ``in`` operator:\n\n >>> \'Py\' in \'Python\'\n True\n\nstr.format(*args, **kwargs)\n\n Perform a string formatting operation. The string on which this\n method is called can contain literal text or replacement fields\n delimited by braces ``{}``. Each replacement field contains either\n the numeric index of a positional argument, or the name of a\n keyword argument. Returns a copy of the string where each\n replacement field is replaced with the string value of the\n corresponding argument.\n\n >>> "The sum of 1 + 2 is {0}".format(1+2)\n \'The sum of 1 + 2 is 3\'\n\n See *Format String Syntax* for a description of the various\n formatting options that can be specified in format strings.\n\n This method of string formatting is the new standard in Python 3,\n and should be preferred to the ``%`` formatting described in\n *String Formatting Operations* in new code.\n\n New in version 2.6.\n\nstr.index(sub[, start[, end]])\n\n Like ``find()``, but raise ``ValueError`` when the substring is not\n found.\n\nstr.isalnum()\n\n Return true if all characters in the string are alphanumeric and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isalpha()\n\n Return true if all characters in the string are alphabetic and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isdigit()\n\n Return true if all characters in the string are digits and there is\n at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.islower()\n\n Return true if all cased characters [4] in the string are lowercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isspace()\n\n Return true if there are only whitespace characters in the string\n and there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.istitle()\n\n Return true if the string is a titlecased string and there is at\n least one character, for example uppercase characters may only\n follow uncased characters and lowercase characters only cased ones.\n Return false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isupper()\n\n Return true if all cased characters [4] in the string are uppercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.join(iterable)\n\n Return a string which is the concatenation of the strings in the\n *iterable* *iterable*. The separator between elements is the\n string providing this method.\n\nstr.ljust(width[, fillchar])\n\n Return the string left justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.lower()\n\n Return a copy of the string with all the cased characters [4]\n converted to lowercase.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.lstrip([chars])\n\n Return a copy of the string with leading characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a prefix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.lstrip()\n \'spacious \'\n >>> \'www.example.com\'.lstrip(\'cmowz.\')\n \'example.com\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.partition(sep)\n\n Split the string at the first occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing the string itself, followed by\n two empty strings.\n\n New in version 2.5.\n\nstr.replace(old, new[, count])\n\n Return a copy of the string with all occurrences of substring *old*\n replaced by *new*. If the optional argument *count* is given, only\n the first *count* occurrences are replaced.\n\nstr.rfind(sub[, start[, end]])\n\n Return the highest index in the string where substring *sub* is\n found, such that *sub* is contained within ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` on failure.\n\nstr.rindex(sub[, start[, end]])\n\n Like ``rfind()`` but raises ``ValueError`` when the substring *sub*\n is not found.\n\nstr.rjust(width[, fillchar])\n\n Return the string right justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.rpartition(sep)\n\n Split the string at the last occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing two empty strings, followed by\n the string itself.\n\n New in version 2.5.\n\nstr.rsplit([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit* splits\n are done, the *rightmost* ones. If *sep* is not specified or\n ``None``, any whitespace string is a separator. Except for\n splitting from the right, ``rsplit()`` behaves like ``split()``\n which is described in detail below.\n\n New in version 2.4.\n\nstr.rstrip([chars])\n\n Return a copy of the string with trailing characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a suffix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.rstrip()\n \' spacious\'\n >>> \'mississippi\'.rstrip(\'ipz\')\n \'mississ\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.split([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit*\n splits are done (thus, the list will have at most ``maxsplit+1``\n elements). If *maxsplit* is not specified or ``-1``, then there is\n no limit on the number of splits (all possible splits are made).\n\n If *sep* is given, consecutive delimiters are not grouped together\n and are deemed to delimit empty strings (for example,\n ``\'1,,2\'.split(\',\')`` returns ``[\'1\', \'\', \'2\']``). The *sep*\n argument may consist of multiple characters (for example,\n ``\'1<>2<>3\'.split(\'<>\')`` returns ``[\'1\', \'2\', \'3\']``). Splitting\n an empty string with a specified separator returns ``[\'\']``.\n\n If *sep* is not specified or is ``None``, a different splitting\n algorithm is applied: runs of consecutive whitespace are regarded\n as a single separator, and the result will contain no empty strings\n at the start or end if the string has leading or trailing\n whitespace. Consequently, splitting an empty string or a string\n consisting of just whitespace with a ``None`` separator returns\n ``[]``.\n\n For example, ``\' 1 2 3 \'.split()`` returns ``[\'1\', \'2\', \'3\']``,\n and ``\' 1 2 3 \'.split(None, 1)`` returns ``[\'1\', \'2 3 \']``.\n\nstr.splitlines([keepends])\n\n Return a list of the lines in the string, breaking at line\n boundaries. This method uses the *universal newlines* approach to\n splitting lines. Line breaks are not included in the resulting list\n unless *keepends* is given and true.\n\n For example, ``\'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()`` returns\n ``[\'ab c\', \'\', \'de fg\', \'kl\']``, while the same call with\n ``splitlines(True)`` returns ``[\'ab c\\n\', \'\\n\', \'de fg\\r\',\n \'kl\\r\\n\']``.\n\n Unlike ``split()`` when a delimiter string *sep* is given, this\n method returns an empty list for the empty string, and a terminal\n line break does not result in an extra line.\n\nstr.startswith(prefix[, start[, end]])\n\n Return ``True`` if string starts with the *prefix*, otherwise\n return ``False``. *prefix* can also be a tuple of prefixes to look\n for. With optional *start*, test string beginning at that\n position. With optional *end*, stop comparing string at that\n position.\n\n Changed in version 2.5: Accept tuples as *prefix*.\n\nstr.strip([chars])\n\n Return a copy of the string with the leading and trailing\n characters removed. The *chars* argument is a string specifying the\n set of characters to be removed. If omitted or ``None``, the\n *chars* argument defaults to removing whitespace. The *chars*\n argument is not a prefix or suffix; rather, all combinations of its\n values are stripped:\n\n >>> \' spacious \'.strip()\n \'spacious\'\n >>> \'www.example.com\'.strip(\'cmowz.\')\n \'example\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.swapcase()\n\n Return a copy of the string with uppercase characters converted to\n lowercase and vice versa.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.title()\n\n Return a titlecased version of the string where words start with an\n uppercase character and the remaining characters are lowercase.\n\n The algorithm uses a simple language-independent definition of a\n word as groups of consecutive letters. The definition works in\n many contexts but it means that apostrophes in contractions and\n possessives form word boundaries, which may not be the desired\n result:\n\n >>> "they\'re bill\'s friends from the UK".title()\n "They\'Re Bill\'S Friends From The Uk"\n\n A workaround for apostrophes can be constructed using regular\n expressions:\n\n >>> import re\n >>> def titlecase(s):\n ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n ... lambda mo: mo.group(0)[0].upper() +\n ... mo.group(0)[1:].lower(),\n ... s)\n ...\n >>> titlecase("they\'re bill\'s friends.")\n "They\'re Bill\'s Friends."\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.translate(table[, deletechars])\n\n Return a copy of the string where all characters occurring in the\n optional argument *deletechars* are removed, and the remaining\n characters have been mapped through the given translation table,\n which must be a string of length 256.\n\n You can use the ``maketrans()`` helper function in the ``string``\n module to create a translation table. For string objects, set the\n *table* argument to ``None`` for translations that only delete\n characters:\n\n >>> \'read this short text\'.translate(None, \'aeiou\')\n \'rd ths shrt txt\'\n\n New in version 2.6: Support for a ``None`` *table* argument.\n\n For Unicode objects, the ``translate()`` method does not accept the\n optional *deletechars* argument. Instead, it returns a copy of the\n *s* where all characters have been mapped through the given\n translation table which must be a mapping of Unicode ordinals to\n Unicode ordinals, Unicode strings or ``None``. Unmapped characters\n are left untouched. Characters mapped to ``None`` are deleted.\n Note, a more flexible approach is to create a custom character\n mapping codec using the ``codecs`` module (see ``encodings.cp1251``\n for an example).\n\nstr.upper()\n\n Return a copy of the string with all the cased characters [4]\n converted to uppercase. Note that ``str.upper().isupper()`` might\n be ``False`` if ``s`` contains uncased characters or if the Unicode\n category of the resulting character(s) is not "Lu" (Letter,\n uppercase), but e.g. "Lt" (Letter, titlecase).\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.zfill(width)\n\n Return the numeric string left filled with zeros in a string of\n length *width*. A sign prefix is handled correctly. The original\n string is returned if *width* is less than or equal to ``len(s)``.\n\n New in version 2.2.2.\n\nThe following methods are present only on unicode objects:\n\nunicode.isnumeric()\n\n Return ``True`` if there are only numeric characters in S,\n ``False`` otherwise. Numeric characters include digit characters,\n and all characters that have the Unicode numeric value property,\n e.g. U+2155, VULGAR FRACTION ONE FIFTH.\n\nunicode.isdecimal()\n\n Return ``True`` if there are only decimal characters in S,\n ``False`` otherwise. Decimal characters include digit characters,\n and all characters that can be used to form decimal-radix numbers,\n e.g. U+0660, ARABIC-INDIC DIGIT ZERO.\n\n\nString Formatting Operations\n============================\n\nString and Unicode objects have one unique built-in operation: the\n``%`` operator (modulo). This is also known as the string\n*formatting* or *interpolation* operator. Given ``format % values``\n(where *format* is a string or Unicode object), ``%`` conversion\nspecifications in *format* are replaced with zero or more elements of\n*values*. The effect is similar to the using ``sprintf()`` in the C\nlanguage. If *format* is a Unicode object, or if any of the objects\nbeing converted using the ``%s`` conversion are Unicode objects, the\nresult will also be a Unicode object.\n\nIf *format* requires a single argument, *values* may be a single non-\ntuple object. [5] Otherwise, *values* must be a tuple with exactly\nthe number of items specified by the format string, or a single\nmapping object (for example, a dictionary).\n\nA conversion specifier contains two or more characters and has the\nfollowing components, which must occur in this order:\n\n1. The ``\'%\'`` character, which marks the start of the specifier.\n\n2. Mapping key (optional), consisting of a parenthesised sequence of\n characters (for example, ``(somename)``).\n\n3. Conversion flags (optional), which affect the result of some\n conversion types.\n\n4. Minimum field width (optional). If specified as an ``\'*\'``\n (asterisk), the actual width is read from the next element of the\n tuple in *values*, and the object to convert comes after the\n minimum field width and optional precision.\n\n5. Precision (optional), given as a ``\'.\'`` (dot) followed by the\n precision. If specified as ``\'*\'`` (an asterisk), the actual width\n is read from the next element of the tuple in *values*, and the\n value to convert comes after the precision.\n\n6. Length modifier (optional).\n\n7. Conversion type.\n\nWhen the right argument is a dictionary (or other mapping type), then\nthe formats in the string *must* include a parenthesised mapping key\ninto that dictionary inserted immediately after the ``\'%\'`` character.\nThe mapping key selects the value to be formatted from the mapping.\nFor example:\n\n>>> print \'%(language)s has %(number)03d quote types.\' % \\\n... {"language": "Python", "number": 2}\nPython has 002 quote types.\n\nIn this case no ``*`` specifiers may occur in a format (since they\nrequire a sequential parameter list).\n\nThe conversion flag characters are:\n\n+-----------+-----------------------------------------------------------------------+\n| Flag | Meaning |\n+===========+=======================================================================+\n| ``\'#\'`` | The value conversion will use the "alternate form" (where defined |\n| | below). |\n+-----------+-----------------------------------------------------------------------+\n| ``\'0\'`` | The conversion will be zero padded for numeric values. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'-\'`` | The converted value is left adjusted (overrides the ``\'0\'`` |\n| | conversion if both are given). |\n+-----------+-----------------------------------------------------------------------+\n| ``\' \'`` | (a space) A blank should be left before a positive number (or empty |\n| | string) produced by a signed conversion. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'+\'`` | A sign character (``\'+\'`` or ``\'-\'``) will precede the conversion |\n| | (overrides a "space" flag). |\n+-----------+-----------------------------------------------------------------------+\n\nA length modifier (``h``, ``l``, or ``L``) may be present, but is\nignored as it is not necessary for Python -- so e.g. ``%ld`` is\nidentical to ``%d``.\n\nThe conversion types are:\n\n+--------------+-------------------------------------------------------+---------+\n| Conversion | Meaning | Notes |\n+==============+=======================================================+=========+\n| ``\'d\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'i\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'o\'`` | Signed octal value. | (1) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'u\'`` | Obsolete type -- it is identical to ``\'d\'``. | (7) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'x\'`` | Signed hexadecimal (lowercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'X\'`` | Signed hexadecimal (uppercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'e\'`` | Floating point exponential format (lowercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'E\'`` | Floating point exponential format (uppercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'f\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'F\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'g\'`` | Floating point format. Uses lowercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'G\'`` | Floating point format. Uses uppercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'c\'`` | Single character (accepts integer or single character | |\n| | string). | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'r\'`` | String (converts any Python object using *repr()*). | (5) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'s\'`` | String (converts any Python object using ``str()``). | (6) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'%\'`` | No argument is converted, results in a ``\'%\'`` | |\n| | character in the result. | |\n+--------------+-------------------------------------------------------+---------+\n\nNotes:\n\n1. The alternate form causes a leading zero (``\'0\'``) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n2. The alternate form causes a leading ``\'0x\'`` or ``\'0X\'`` (depending\n on whether the ``\'x\'`` or ``\'X\'`` format was used) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n3. The alternate form causes the result to always contain a decimal\n point, even if no digits follow it.\n\n The precision determines the number of digits after the decimal\n point and defaults to 6.\n\n4. The alternate form causes the result to always contain a decimal\n point, and trailing zeroes are not removed as they would otherwise\n be.\n\n The precision determines the number of significant digits before\n and after the decimal point and defaults to 6.\n\n5. The ``%r`` conversion was added in Python 2.0.\n\n The precision determines the maximal number of characters used.\n\n6. If the object or format provided is a ``unicode`` string, the\n resulting string will also be ``unicode``.\n\n The precision determines the maximal number of characters used.\n\n7. See **PEP 237**.\n\nSince Python strings have an explicit length, ``%s`` conversions do\nnot assume that ``\'\\0\'`` is the end of the string.\n\nChanged in version 2.7: ``%f`` conversions for numbers whose absolute\nvalue is over 1e50 are no longer replaced by ``%g`` conversions.\n\nAdditional string operations are defined in standard modules\n``string`` and ``re``.\n\n\nXRange Type\n===========\n\nThe ``xrange`` type is an immutable sequence which is commonly used\nfor looping. The advantage of the ``xrange`` type is that an\n``xrange`` object will always take the same amount of memory, no\nmatter the size of the range it represents. There are no consistent\nperformance advantages.\n\nXRange objects have very little behavior: they only support indexing,\niteration, and the ``len()`` function.\n\n\nMutable Sequence Types\n======================\n\nList and ``bytearray`` objects support additional operations that\nallow in-place modification of the object. Other mutable sequence\ntypes (when added to the language) should also support these\noperations. Strings and tuples are immutable sequence types: such\nobjects cannot be modified once created. The following operations are\ndefined on mutable sequence types (where *x* is an arbitrary object):\n\n+--------------------------------+----------------------------------+-----------------------+\n| Operation | Result | Notes |\n+================================+==================================+=======================+\n| ``s[i] = x`` | item *i* of *s* is replaced by | |\n| | *x* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j] = t`` | slice of *s* from *i* to *j* is | |\n| | replaced by the contents of the | |\n| | iterable *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j]`` | same as ``s[i:j] = []`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j:k] = t`` | the elements of ``s[i:j:k]`` are | (1) |\n| | replaced by those of *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j:k]`` | removes the elements of | |\n| | ``s[i:j:k]`` from the list | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.append(x)`` | same as ``s[len(s):len(s)] = | (2) |\n| | [x]`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.extend(x)`` | same as ``s[len(s):len(s)] = x`` | (3) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.count(x)`` | return number of *i*\'s for which | |\n| | ``s[i] == x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.index(x[, i[, j]])`` | return smallest *k* such that | (4) |\n| | ``s[k] == x`` and ``i <= k < j`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.insert(i, x)`` | same as ``s[i:i] = [x]`` | (5) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.pop([i])`` | same as ``x = s[i]; del s[i]; | (6) |\n| | return x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.remove(x)`` | same as ``del s[s.index(x)]`` | (4) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.reverse()`` | reverses the items of *s* in | (7) |\n| | place | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.sort([cmp[, key[, | sort the items of *s* in place | (7)(8)(9)(10) |\n| reverse]]])`` | | |\n+--------------------------------+----------------------------------+-----------------------+\n\nNotes:\n\n1. *t* must have the same length as the slice it is replacing.\n\n2. The C implementation of Python has historically accepted multiple\n parameters and implicitly joined them into a tuple; this no longer\n works in Python 2.0. Use of this misfeature has been deprecated\n since Python 1.4.\n\n3. *x* can be any iterable object.\n\n4. Raises ``ValueError`` when *x* is not found in *s*. When a negative\n index is passed as the second or third parameter to the ``index()``\n method, the list length is added, as for slice indices. If it is\n still negative, it is truncated to zero, as for slice indices.\n\n Changed in version 2.3: Previously, ``index()`` didn\'t have\n arguments for specifying start and stop positions.\n\n5. When a negative index is passed as the first parameter to the\n ``insert()`` method, the list length is added, as for slice\n indices. If it is still negative, it is truncated to zero, as for\n slice indices.\n\n Changed in version 2.3: Previously, all negative indices were\n truncated to zero.\n\n6. The ``pop()`` method is only supported by the list and array types.\n The optional argument *i* defaults to ``-1``, so that by default\n the last item is removed and returned.\n\n7. The ``sort()`` and ``reverse()`` methods modify the list in place\n for economy of space when sorting or reversing a large list. To\n remind you that they operate by side effect, they don\'t return the\n sorted or reversed list.\n\n8. The ``sort()`` method takes optional arguments for controlling the\n comparisons.\n\n *cmp* specifies a custom comparison function of two arguments (list\n items) which should return a negative, zero or positive number\n depending on whether the first argument is considered smaller than,\n equal to, or larger than the second argument: ``cmp=lambda x,y:\n cmp(x.lower(), y.lower())``. The default value is ``None``.\n\n *key* specifies a function of one argument that is used to extract\n a comparison key from each list element: ``key=str.lower``. The\n default value is ``None``.\n\n *reverse* is a boolean value. If set to ``True``, then the list\n elements are sorted as if each comparison were reversed.\n\n In general, the *key* and *reverse* conversion processes are much\n faster than specifying an equivalent *cmp* function. This is\n because *cmp* is called multiple times for each list element while\n *key* and *reverse* touch each element only once. Use\n ``functools.cmp_to_key()`` to convert an old-style *cmp* function\n to a *key* function.\n\n Changed in version 2.3: Support for ``None`` as an equivalent to\n omitting *cmp* was added.\n\n Changed in version 2.4: Support for *key* and *reverse* was added.\n\n9. Starting with Python 2.3, the ``sort()`` method is guaranteed to be\n stable. A sort is stable if it guarantees not to change the\n relative order of elements that compare equal --- this is helpful\n for sorting in multiple passes (for example, sort by department,\n then by salary grade).\n\n10. **CPython implementation detail:** While a list is being sorted,\n the effect of attempting to mutate, or even inspect, the list is\n undefined. The C implementation of Python 2.3 and newer makes the\n list appear empty for the duration, and raises ``ValueError`` if\n it can detect that the list has been mutated during a sort.\n',
/prebuilts/python/darwin-x86/2.7.5/lib/python2.7/pydoc_data/
H A Dtopics.py18 'calls': '\nCalls\n*****\n\nA call calls a callable object (e.g., a *function*) with a possibly\nempty series of *arguments*:\n\n call ::= primary "(" [argument_list [","]\n | expression genexpr_for] ")"\n argument_list ::= positional_arguments ["," keyword_arguments]\n ["," "*" expression] ["," keyword_arguments]\n ["," "**" expression]\n | keyword_arguments ["," "*" expression]\n ["," "**" expression]\n | "*" expression ["," "*" expression] ["," "**" expression]\n | "**" expression\n positional_arguments ::= expression ("," expression)*\n keyword_arguments ::= keyword_item ("," keyword_item)*\n keyword_item ::= identifier "=" expression\n\nA trailing comma may be present after the positional and keyword\narguments but does not affect the semantics.\n\nThe primary must evaluate to a callable object (user-defined\nfunctions, built-in functions, methods of built-in objects, class\nobjects, methods of class instances, and certain class instances\nthemselves are callable; extensions may define additional callable\nobject types). All argument expressions are evaluated before the call\nis attempted. Please refer to section *Function definitions* for the\nsyntax of formal *parameter* lists.\n\nIf keyword arguments are present, they are first converted to\npositional arguments, as follows. First, a list of unfilled slots is\ncreated for the formal parameters. If there are N positional\narguments, they are placed in the first N slots. Next, for each\nkeyword argument, the identifier is used to determine the\ncorresponding slot (if the identifier is the same as the first formal\nparameter name, the first slot is used, and so on). If the slot is\nalready filled, a ``TypeError`` exception is raised. Otherwise, the\nvalue of the argument is placed in the slot, filling it (even if the\nexpression is ``None``, it fills the slot). When all arguments have\nbeen processed, the slots that are still unfilled are filled with the\ncorresponding default value from the function definition. (Default\nvalues are calculated, once, when the function is defined; thus, a\nmutable object such as a list or dictionary used as default value will\nbe shared by all calls that don\'t specify an argument value for the\ncorresponding slot; this should usually be avoided.) If there are any\nunfilled slots for which no default value is specified, a\n``TypeError`` exception is raised. Otherwise, the list of filled\nslots is used as the argument list for the call.\n\n**CPython implementation detail:** An implementation may provide\nbuilt-in functions whose positional parameters do not have names, even\nif they are \'named\' for the purpose of documentation, and which\ntherefore cannot be supplied by keyword. In CPython, this is the case\nfor functions implemented in C that use ``PyArg_ParseTuple()`` to\nparse their arguments.\n\nIf there are more positional arguments than there are formal parameter\nslots, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``*identifier`` is present; in this case, that formal\nparameter receives a tuple containing the excess positional arguments\n(or an empty tuple if there were no excess positional arguments).\n\nIf any keyword argument does not correspond to a formal parameter\nname, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``**identifier`` is present; in this case, that\nformal parameter receives a dictionary containing the excess keyword\narguments (using the keywords as keys and the argument values as\ncorresponding values), or a (new) empty dictionary if there were no\nexcess keyword arguments.\n\nIf the syntax ``*expression`` appears in the function call,\n``expression`` must evaluate to an iterable. Elements from this\niterable are treated as if they were additional positional arguments;\nif there are positional arguments *x1*, ..., *xN*, and ``expression``\nevaluates to a sequence *y1*, ..., *yM*, this is equivalent to a call\nwith M+N positional arguments *x1*, ..., *xN*, *y1*, ..., *yM*.\n\nA consequence of this is that although the ``*expression`` syntax may\nappear *after* some keyword arguments, it is processed *before* the\nkeyword arguments (and the ``**expression`` argument, if any -- see\nbelow). So:\n\n >>> def f(a, b):\n ... print a, b\n ...\n >>> f(b=1, *(2,))\n 2 1\n >>> f(a=1, *(2,))\n Traceback (most recent call last):\n File "<stdin>", line 1, in ?\n TypeError: f() got multiple values for keyword argument \'a\'\n >>> f(1, *(2,))\n 1 2\n\nIt is unusual for both keyword arguments and the ``*expression``\nsyntax to be used in the same call, so in practice this confusion does\nnot arise.\n\nIf the syntax ``**expression`` appears in the function call,\n``expression`` must evaluate to a mapping, the contents of which are\ntreated as additional keyword arguments. In the case of a keyword\nappearing in both ``expression`` and as an explicit keyword argument,\na ``TypeError`` exception is raised.\n\nFormal parameters using the syntax ``*identifier`` or ``**identifier``\ncannot be used as positional argument slots or as keyword argument\nnames. Formal parameters using the syntax ``(sublist)`` cannot be\nused as keyword argument names; the outermost sublist corresponds to a\nsingle unnamed argument slot, and the argument value is assigned to\nthe sublist using the usual tuple assignment rules after all other\nparameter processing is done.\n\nA call always returns some value, possibly ``None``, unless it raises\nan exception. How this value is computed depends on the type of the\ncallable object.\n\nIf it is---\n\na user-defined function:\n The code block for the function is executed, passing it the\n argument list. The first thing the code block will do is bind the\n formal parameters to the arguments; this is described in section\n *Function definitions*. When the code block executes a ``return``\n statement, this specifies the return value of the function call.\n\na built-in function or method:\n The result is up to the interpreter; see *Built-in Functions* for\n the descriptions of built-in functions and methods.\n\na class object:\n A new instance of that class is returned.\n\na class instance method:\n The corresponding user-defined function is called, with an argument\n list that is one longer than the argument list of the call: the\n instance becomes the first argument.\n\na class instance:\n The class must define a ``__call__()`` method; the effect is then\n the same as if that method was called.\n',
21 'compound': '\nCompound statements\n*******************\n\nCompound statements contain (groups of) other statements; they affect\nor control the execution of those other statements in some way. In\ngeneral, compound statements span multiple lines, although in simple\nincarnations a whole compound statement may be contained in one line.\n\nThe ``if``, ``while`` and ``for`` statements implement traditional\ncontrol flow constructs. ``try`` specifies exception handlers and/or\ncleanup code for a group of statements. Function and class\ndefinitions are also syntactically compound statements.\n\nCompound statements consist of one or more \'clauses.\' A clause\nconsists of a header and a \'suite.\' The clause headers of a\nparticular compound statement are all at the same indentation level.\nEach clause header begins with a uniquely identifying keyword and ends\nwith a colon. A suite is a group of statements controlled by a\nclause. A suite can be one or more semicolon-separated simple\nstatements on the same line as the header, following the header\'s\ncolon, or it can be one or more indented statements on subsequent\nlines. Only the latter form of suite can contain nested compound\nstatements; the following is illegal, mostly because it wouldn\'t be\nclear to which ``if`` clause a following ``else`` clause would belong:\n\n if test1: if test2: print x\n\nAlso note that the semicolon binds tighter than the colon in this\ncontext, so that in the following example, either all or none of the\n``print`` statements are executed:\n\n if x < y < z: print x; print y; print z\n\nSummarizing:\n\n compound_stmt ::= if_stmt\n | while_stmt\n | for_stmt\n | try_stmt\n | with_stmt\n | funcdef\n | classdef\n | decorated\n suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT\n statement ::= stmt_list NEWLINE | compound_stmt\n stmt_list ::= simple_stmt (";" simple_stmt)* [";"]\n\nNote that statements always end in a ``NEWLINE`` possibly followed by\na ``DEDENT``. Also note that optional continuation clauses always\nbegin with a keyword that cannot start a statement, thus there are no\nambiguities (the \'dangling ``else``\' problem is solved in Python by\nrequiring nested ``if`` statements to be indented).\n\nThe formatting of the grammar rules in the following sections places\neach clause on a separate line for clarity.\n\n\nThe ``if`` statement\n====================\n\nThe ``if`` statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section *Boolean operations*\nfor the definition of true and false); then that suite is executed\n(and no other part of the ``if`` statement is executed or evaluated).\nIf all expressions are false, the suite of the ``else`` clause, if\npresent, is executed.\n\n\nThe ``while`` statement\n=======================\n\nThe ``while`` statement is used for repeated execution as long as an\nexpression is true:\n\n while_stmt ::= "while" expression ":" suite\n ["else" ":" suite]\n\nThis repeatedly tests the expression and, if it is true, executes the\nfirst suite; if the expression is false (which may be the first time\nit is tested) the suite of the ``else`` clause, if present, is\nexecuted and the loop terminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ngoes back to testing the expression.\n\n\nThe ``for`` statement\n=====================\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n\n\nThe ``try`` statement\n=====================\n\nThe ``try`` statement specifies exception handlers and/or cleanup code\nfor a group of statements:\n\n try_stmt ::= try1_stmt | try2_stmt\n try1_stmt ::= "try" ":" suite\n ("except" [expression [("as" | ",") target]] ":" suite)+\n ["else" ":" suite]\n ["finally" ":" suite]\n try2_stmt ::= "try" ":" suite\n "finally" ":" suite\n\nChanged in version 2.5: In previous versions of Python,\n``try``...``except``...``finally`` did not work. ``try``...``except``\nhad to be nested in ``try``...``finally``.\n\nThe ``except`` clause(s) specify one or more exception handlers. When\nno exception occurs in the ``try`` clause, no exception handler is\nexecuted. When an exception occurs in the ``try`` suite, a search for\nan exception handler is started. This search inspects the except\nclauses in turn until one is found that matches the exception. An\nexpression-less except clause, if present, must be last; it matches\nany exception. For an except clause with an expression, that\nexpression is evaluated, and the clause matches the exception if the\nresulting object is "compatible" with the exception. An object is\ncompatible with an exception if it is the class or a base class of the\nexception object, or a tuple containing an item compatible with the\nexception.\n\nIf no except clause matches the exception, the search for an exception\nhandler continues in the surrounding code and on the invocation stack.\n[1]\n\nIf the evaluation of an expression in the header of an except clause\nraises an exception, the original search for a handler is canceled and\na search starts for the new exception in the surrounding code and on\nthe call stack (it is treated as if the entire ``try`` statement\nraised the exception).\n\nWhen a matching except clause is found, the exception is assigned to\nthe target specified in that except clause, if present, and the except\nclause\'s suite is executed. All except clauses must have an\nexecutable block. When the end of this block is reached, execution\ncontinues normally after the entire try statement. (This means that\nif two nested handlers exist for the same exception, and the exception\noccurs in the try clause of the inner handler, the outer handler will\nnot handle the exception.)\n\nBefore an except clause\'s suite is executed, details about the\nexception are assigned to three variables in the ``sys`` module:\n``sys.exc_type`` receives the object identifying the exception;\n``sys.exc_value`` receives the exception\'s parameter;\n``sys.exc_traceback`` receives a traceback object (see section *The\nstandard type hierarchy*) identifying the point in the program where\nthe exception occurred. These details are also available through the\n``sys.exc_info()`` function, which returns a tuple ``(exc_type,\nexc_value, exc_traceback)``. Use of the corresponding variables is\ndeprecated in favor of this function, since their use is unsafe in a\nthreaded program. As of Python 1.5, the variables are restored to\ntheir previous values (before the call) when returning from a function\nthat handled an exception.\n\nThe optional ``else`` clause is executed if and when control flows off\nthe end of the ``try`` clause. [2] Exceptions in the ``else`` clause\nare not handled by the preceding ``except`` clauses.\n\nIf ``finally`` is present, it specifies a \'cleanup\' handler. The\n``try`` clause is executed, including any ``except`` and ``else``\nclauses. If an exception occurs in any of the clauses and is not\nhandled, the exception is temporarily saved. The ``finally`` clause is\nexecuted. If there is a saved exception, it is re-raised at the end\nof the ``finally`` clause. If the ``finally`` clause raises another\nexception or executes a ``return`` or ``break`` statement, the saved\nexception is discarded:\n\n def f():\n try:\n 1/0\n finally:\n return 42\n\n >>> f()\n 42\n\nThe exception information is not available to the program during\nexecution of the ``finally`` clause.\n\nWhen a ``return``, ``break`` or ``continue`` statement is executed in\nthe ``try`` suite of a ``try``...``finally`` statement, the\n``finally`` clause is also executed \'on the way out.\' A ``continue``\nstatement is illegal in the ``finally`` clause. (The reason is a\nproblem with the current implementation --- this restriction may be\nlifted in the future).\n\nAdditional information on exceptions can be found in section\n*Exceptions*, and information on using the ``raise`` statement to\ngenerate exceptions may be found in section *The raise statement*.\n\n\nThe ``with`` statement\n======================\n\nNew in version 2.5.\n\nThe ``with`` statement is used to wrap the execution of a block with\nmethods defined by a context manager (see section *With Statement\nContext Managers*). This allows common\n``try``...``except``...``finally`` usage patterns to be encapsulated\nfor convenient reuse.\n\n with_stmt ::= "with" with_item ("," with_item)* ":" suite\n with_item ::= expression ["as" target]\n\nThe execution of the ``with`` statement with one "item" proceeds as\nfollows:\n\n1. The context expression (the expression given in the ``with_item``)\n is evaluated to obtain a context manager.\n\n2. The context manager\'s ``__exit__()`` is loaded for later use.\n\n3. The context manager\'s ``__enter__()`` method is invoked.\n\n4. If a target was included in the ``with`` statement, the return\n value from ``__enter__()`` is assigned to it.\n\n Note: The ``with`` statement guarantees that if the ``__enter__()``\n method returns without an error, then ``__exit__()`` will always\n be called. Thus, if an error occurs during the assignment to the\n target list, it will be treated the same as an error occurring\n within the suite would be. See step 6 below.\n\n5. The suite is executed.\n\n6. The context manager\'s ``__exit__()`` method is invoked. If an\n exception caused the suite to be exited, its type, value, and\n traceback are passed as arguments to ``__exit__()``. Otherwise,\n three ``None`` arguments are supplied.\n\n If the suite was exited due to an exception, and the return value\n from the ``__exit__()`` method was false, the exception is\n reraised. If the return value was true, the exception is\n suppressed, and execution continues with the statement following\n the ``with`` statement.\n\n If the suite was exited for any reason other than an exception, the\n return value from ``__exit__()`` is ignored, and execution proceeds\n at the normal location for the kind of exit that was taken.\n\nWith more than one item, the context managers are processed as if\nmultiple ``with`` statements were nested:\n\n with A() as a, B() as b:\n suite\n\nis equivalent to\n\n with A() as a:\n with B() as b:\n suite\n\nNote: In Python 2.5, the ``with`` statement is only allowed when the\n ``with_statement`` feature has been enabled. It is always enabled\n in Python 2.6.\n\nChanged in version 2.7: Support for multiple context expressions.\n\nSee also:\n\n **PEP 0343** - The "with" statement\n The specification, background, and examples for the Python\n ``with`` statement.\n\n\nFunction definitions\n====================\n\nA function definition defines a user-defined function object (see\nsection *The standard type hierarchy*):\n\n decorated ::= decorators (classdef | funcdef)\n decorators ::= decorator+\n decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE\n funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite\n dotted_name ::= identifier ("." identifier)*\n parameter_list ::= (defparameter ",")*\n ( "*" identifier ["," "**" identifier]\n | "**" identifier\n | defparameter [","] )\n defparameter ::= parameter ["=" expression]\n sublist ::= parameter ("," parameter)* [","]\n parameter ::= identifier | "(" sublist ")"\n funcname ::= identifier\n\nA function definition is an executable statement. Its execution binds\nthe function name in the current local namespace to a function object\n(a wrapper around the executable code for the function). This\nfunction object contains a reference to the current global namespace\nas the global namespace to be used when the function is called.\n\nThe function definition does not execute the function body; this gets\nexecuted only when the function is called. [3]\n\nA function definition may be wrapped by one or more *decorator*\nexpressions. Decorator expressions are evaluated when the function is\ndefined, in the scope that contains the function definition. The\nresult must be a callable, which is invoked with the function object\nas the only argument. The returned value is bound to the function name\ninstead of the function object. Multiple decorators are applied in\nnested fashion. For example, the following code:\n\n @f1(arg)\n @f2\n def func(): pass\n\nis equivalent to:\n\n def func(): pass\n func = f1(arg)(f2(func))\n\nWhen one or more top-level *parameters* have the form *parameter*\n``=`` *expression*, the function is said to have "default parameter\nvalues." For a parameter with a default value, the corresponding\n*argument* may be omitted from a call, in which case the parameter\'s\ndefault value is substituted. If a parameter has a default value, all\nfollowing parameters must also have a default value --- this is a\nsyntactic restriction that is not expressed by the grammar.\n\n**Default parameter values are evaluated when the function definition\nis executed.** This means that the expression is evaluated once, when\nthe function is defined, and that the same "pre-computed" value is\nused for each call. This is especially important to understand when a\ndefault parameter is a mutable object, such as a list or a dictionary:\nif the function modifies the object (e.g. by appending an item to a\nlist), the default value is in effect modified. This is generally not\nwhat was intended. A way around this is to use ``None`` as the\ndefault, and explicitly test for it in the body of the function, e.g.:\n\n def whats_on_the_telly(penguin=None):\n if penguin is None:\n penguin = []\n penguin.append("property of the zoo")\n return penguin\n\nFunction call semantics are described in more detail in section\n*Calls*. A function call always assigns values to all parameters\nmentioned in the parameter list, either from position arguments, from\nkeyword arguments, or from default values. If the form\n"``*identifier``" is present, it is initialized to a tuple receiving\nany excess positional parameters, defaulting to the empty tuple. If\nthe form "``**identifier``" is present, it is initialized to a new\ndictionary receiving any excess keyword arguments, defaulting to a new\nempty dictionary.\n\nIt is also possible to create anonymous functions (functions not bound\nto a name), for immediate use in expressions. This uses lambda forms,\ndescribed in section *Lambdas*. Note that the lambda form is merely a\nshorthand for a simplified function definition; a function defined in\na "``def``" statement can be passed around or assigned to another name\njust like a function defined by a lambda form. The "``def``" form is\nactually more powerful since it allows the execution of multiple\nstatements.\n\n**Programmer\'s note:** Functions are first-class objects. A "``def``"\nform executed inside a function definition defines a local function\nthat can be returned or passed around. Free variables used in the\nnested function can access the local variables of the function\ncontaining the def. See section *Naming and binding* for details.\n\n\nClass definitions\n=================\n\nA class definition defines a class object (see section *The standard\ntype hierarchy*):\n\n classdef ::= "class" classname [inheritance] ":" suite\n inheritance ::= "(" [expression_list] ")"\n classname ::= identifier\n\nA class definition is an executable statement. It first evaluates the\ninheritance list, if present. Each item in the inheritance list\nshould evaluate to a class object or class type which allows\nsubclassing. The class\'s suite is then executed in a new execution\nframe (see section *Naming and binding*), using a newly created local\nnamespace and the original global namespace. (Usually, the suite\ncontains only function definitions.) When the class\'s suite finishes\nexecution, its execution frame is discarded but its local namespace is\nsaved. [4] A class object is then created using the inheritance list\nfor the base classes and the saved local namespace for the attribute\ndictionary. The class name is bound to this class object in the\noriginal local namespace.\n\n**Programmer\'s note:** Variables defined in the class definition are\nclass variables; they are shared by all instances. To create instance\nvariables, they can be set in a method with ``self.name = value``.\nBoth class and instance variables are accessible through the notation\n"``self.name``", and an instance variable hides a class variable with\nthe same name when accessed in this way. Class variables can be used\nas defaults for instance variables, but using mutable values there can\nlead to unexpected results. For *new-style class*es, descriptors can\nbe used to create instance variables with different implementation\ndetails.\n\nClass definitions, like function definitions, may be wrapped by one or\nmore *decorator* expressions. The evaluation rules for the decorator\nexpressions are the same as for functions. The result must be a class\nobject, which is then bound to the class name.\n\n-[ Footnotes ]-\n\n[1] The exception is propagated to the invocation stack unless there\n is a ``finally`` clause which happens to raise another exception.\n That new exception causes the old one to be lost.\n\n[2] Currently, control "flows off the end" except in the case of an\n exception or the execution of a ``return``, ``continue``, or\n ``break`` statement.\n\n[3] A string literal appearing as the first statement in the function\n body is transformed into the function\'s ``__doc__`` attribute and\n therefore the function\'s *docstring*.\n\n[4] A string literal appearing as the first statement in the class\n body is transformed into the namespace\'s ``__doc__`` item and\n therefore the class\'s *docstring*.\n',
35 'for': '\nThe ``for`` statement\n*********************\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n',
38 'global': '\nThe ``global`` statement\n************************\n\n global_stmt ::= "global" identifier ("," identifier)*\n\nThe ``global`` statement is a declaration which holds for the entire\ncurrent code block. It means that the listed identifiers are to be\ninterpreted as globals. It would be impossible to assign to a global\nvariable without ``global``, although free variables may refer to\nglobals without being declared global.\n\nNames listed in a ``global`` statement must not be used in the same\ncode block textually preceding that ``global`` statement.\n\nNames listed in a ``global`` statement must not be defined as formal\nparameters or in a ``for`` loop control target, ``class`` definition,\nfunction definition, or ``import`` statement.\n\n**CPython implementation detail:** The current implementation does not\nenforce the latter two restrictions, but programs should not abuse\nthis freedom, as future implementations may enforce them or silently\nchange the meaning of the program.\n\n**Programmer\'s note:** the ``global`` is a directive to the parser.\nIt applies only to code parsed at the same time as the ``global``\nstatement. In particular, a ``global`` statement contained in an\n``exec`` statement does not affect the code block *containing* the\n``exec`` statement, and code contained in an ``exec`` statement is\nunaffected by ``global`` statements in the code containing the\n``exec`` statement. The same applies to the ``eval()``,\n``execfile()`` and ``compile()`` functions.\n',
51 'objects': '\nObjects, values and types\n*************************\n\n*Objects* are Python\'s abstraction for data. All data in a Python\nprogram is represented by objects or by relations between objects. (In\na sense, and in conformance to Von Neumann\'s model of a "stored\nprogram computer," code is also represented by objects.)\n\nEvery object has an identity, a type and a value. An object\'s\n*identity* never changes once it has been created; you may think of it\nas the object\'s address in memory. The \'``is``\' operator compares the\nidentity of two objects; the ``id()`` function returns an integer\nrepresenting its identity (currently implemented as its address). An\nobject\'s *type* is also unchangeable. [1] An object\'s type determines\nthe operations that the object supports (e.g., "does it have a\nlength?") and also defines the possible values for objects of that\ntype. The ``type()`` function returns an object\'s type (which is an\nobject itself). The *value* of some objects can change. Objects\nwhose value can change are said to be *mutable*; objects whose value\nis unchangeable once they are created are called *immutable*. (The\nvalue of an immutable container object that contains a reference to a\nmutable object can change when the latter\'s value is changed; however\nthe container is still considered immutable, because the collection of\nobjects it contains cannot be changed. So, immutability is not\nstrictly the same as having an unchangeable value, it is more subtle.)\nAn object\'s mutability is determined by its type; for instance,\nnumbers, strings and tuples are immutable, while dictionaries and\nlists are mutable.\n\nObjects are never explicitly destroyed; however, when they become\nunreachable they may be garbage-collected. An implementation is\nallowed to postpone garbage collection or omit it altogether --- it is\na matter of implementation quality how garbage collection is\nimplemented, as long as no objects are collected that are still\nreachable.\n\n**CPython implementation detail:** CPython currently uses a reference-\ncounting scheme with (optional) delayed detection of cyclically linked\ngarbage, which collects most objects as soon as they become\nunreachable, but is not guaranteed to collect garbage containing\ncircular references. See the documentation of the ``gc`` module for\ninformation on controlling the collection of cyclic garbage. Other\nimplementations act differently and CPython may change. Do not depend\non immediate finalization of objects when they become unreachable (ex:\nalways close files).\n\nNote that the use of the implementation\'s tracing or debugging\nfacilities may keep objects alive that would normally be collectable.\nAlso note that catching an exception with a \'``try``...``except``\'\nstatement may keep objects alive.\n\nSome objects contain references to "external" resources such as open\nfiles or windows. It is understood that these resources are freed\nwhen the object is garbage-collected, but since garbage collection is\nnot guaranteed to happen, such objects also provide an explicit way to\nrelease the external resource, usually a ``close()`` method. Programs\nare strongly recommended to explicitly close such objects. The\n\'``try``...``finally``\' statement provides a convenient way to do\nthis.\n\nSome objects contain references to other objects; these are called\n*containers*. Examples of containers are tuples, lists and\ndictionaries. The references are part of a container\'s value. In\nmost cases, when we talk about the value of a container, we imply the\nvalues, not the identities of the contained objects; however, when we\ntalk about the mutability of a container, only the identities of the\nimmediately contained objects are implied. So, if an immutable\ncontainer (like a tuple) contains a reference to a mutable object, its\nvalue changes if that mutable object is changed.\n\nTypes affect almost all aspects of object behavior. Even the\nimportance of object identity is affected in some sense: for immutable\ntypes, operations that compute new values may actually return a\nreference to any existing object with the same type and value, while\nfor mutable objects this is not allowed. E.g., after ``a = 1; b =\n1``, ``a`` and ``b`` may or may not refer to the same object with the\nvalue one, depending on the implementation, but after ``c = []; d =\n[]``, ``c`` and ``d`` are guaranteed to refer to two different,\nunique, newly created empty lists. (Note that ``c = d = []`` assigns\nthe same object to both ``c`` and ``d``.)\n',
72 'typesseq': '\nSequence Types --- ``str``, ``unicode``, ``list``, ``tuple``, ``bytearray``, ``buffer``, ``xrange``\n***************************************************************************************************\n\nThere are seven sequence types: strings, Unicode strings, lists,\ntuples, bytearrays, buffers, and xrange objects.\n\nFor other containers see the built in ``dict`` and ``set`` classes,\nand the ``collections`` module.\n\nString literals are written in single or double quotes: ``\'xyzzy\'``,\n``"frobozz"``. See *String literals* for more about string literals.\nUnicode strings are much like strings, but are specified in the syntax\nusing a preceding ``\'u\'`` character: ``u\'abc\'``, ``u"def"``. In\naddition to the functionality described here, there are also string-\nspecific methods described in the *String Methods* section. Lists are\nconstructed with square brackets, separating items with commas: ``[a,\nb, c]``. Tuples are constructed by the comma operator (not within\nsquare brackets), with or without enclosing parentheses, but an empty\ntuple must have the enclosing parentheses, such as ``a, b, c`` or\n``()``. A single item tuple must have a trailing comma, such as\n``(d,)``.\n\nBytearray objects are created with the built-in function\n``bytearray()``.\n\nBuffer objects are not directly supported by Python syntax, but can be\ncreated by calling the built-in function ``buffer()``. They don\'t\nsupport concatenation or repetition.\n\nObjects of type xrange are similar to buffers in that there is no\nspecific syntax to create them, but they are created using the\n``xrange()`` function. They don\'t support slicing, concatenation or\nrepetition, and using ``in``, ``not in``, ``min()`` or ``max()`` on\nthem is inefficient.\n\nMost sequence types support the following operations. The ``in`` and\n``not in`` operations have the same priorities as the comparison\noperations. The ``+`` and ``*`` operations have the same priority as\nthe corresponding numeric operations. [3] Additional methods are\nprovided for *Mutable Sequence Types*.\n\nThis table lists the sequence operations sorted in ascending priority\n(operations in the same box have the same priority). In the table,\n*s* and *t* are sequences of the same type; *n*, *i* and *j* are\nintegers:\n\n+--------------------+----------------------------------+------------+\n| Operation | Result | Notes |\n+====================+==================================+============+\n| ``x in s`` | ``True`` if an item of *s* is | (1) |\n| | equal to *x*, else ``False`` | |\n+--------------------+----------------------------------+------------+\n| ``x not in s`` | ``False`` if an item of *s* is | (1) |\n| | equal to *x*, else ``True`` | |\n+--------------------+----------------------------------+------------+\n| ``s + t`` | the concatenation of *s* and *t* | (6) |\n+--------------------+----------------------------------+------------+\n| ``s * n, n * s`` | *n* shallow copies of *s* | (2) |\n| | concatenated | |\n+--------------------+----------------------------------+------------+\n| ``s[i]`` | *i*th item of *s*, origin 0 | (3) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j]`` | slice of *s* from *i* to *j* | (3)(4) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j:k]`` | slice of *s* from *i* to *j* | (3)(5) |\n| | with step *k* | |\n+--------------------+----------------------------------+------------+\n| ``len(s)`` | length of *s* | |\n+--------------------+----------------------------------+------------+\n| ``min(s)`` | smallest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``max(s)`` | largest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.index(i)`` | index of the first occurence of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.count(i)`` | total number of occurences of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n\nSequence types also support comparisons. In particular, tuples and\nlists are compared lexicographically by comparing corresponding\nelements. This means that to compare equal, every element must compare\nequal and the two sequences must be of the same type and have the same\nlength. (For full details see *Comparisons* in the language\nreference.)\n\nNotes:\n\n1. When *s* is a string or Unicode string object the ``in`` and ``not\n in`` operations act like a substring test. In Python versions\n before 2.3, *x* had to be a string of length 1. In Python 2.3 and\n beyond, *x* may be a string of any length.\n\n2. Values of *n* less than ``0`` are treated as ``0`` (which yields an\n empty sequence of the same type as *s*). Note also that the copies\n are shallow; nested structures are not copied. This often haunts\n new Python programmers; consider:\n\n >>> lists = [[]] * 3\n >>> lists\n [[], [], []]\n >>> lists[0].append(3)\n >>> lists\n [[3], [3], [3]]\n\n What has happened is that ``[[]]`` is a one-element list containing\n an empty list, so all three elements of ``[[]] * 3`` are (pointers\n to) this single empty list. Modifying any of the elements of\n ``lists`` modifies this single list. You can create a list of\n different lists this way:\n\n >>> lists = [[] for i in range(3)]\n >>> lists[0].append(3)\n >>> lists[1].append(5)\n >>> lists[2].append(7)\n >>> lists\n [[3], [5], [7]]\n\n3. If *i* or *j* is negative, the index is relative to the end of the\n string: ``len(s) + i`` or ``len(s) + j`` is substituted. But note\n that ``-0`` is still ``0``.\n\n4. The slice of *s* from *i* to *j* is defined as the sequence of\n items with index *k* such that ``i <= k < j``. If *i* or *j* is\n greater than ``len(s)``, use ``len(s)``. If *i* is omitted or\n ``None``, use ``0``. If *j* is omitted or ``None``, use\n ``len(s)``. If *i* is greater than or equal to *j*, the slice is\n empty.\n\n5. The slice of *s* from *i* to *j* with step *k* is defined as the\n sequence of items with index ``x = i + n*k`` such that ``0 <= n <\n (j-i)/k``. In other words, the indices are ``i``, ``i+k``,\n ``i+2*k``, ``i+3*k`` and so on, stopping when *j* is reached (but\n never including *j*). If *i* or *j* is greater than ``len(s)``,\n use ``len(s)``. If *i* or *j* are omitted or ``None``, they become\n "end" values (which end depends on the sign of *k*). Note, *k*\n cannot be zero. If *k* is ``None``, it is treated like ``1``.\n\n6. **CPython implementation detail:** If *s* and *t* are both strings,\n some Python implementations such as CPython can usually perform an\n in-place optimization for assignments of the form ``s = s + t`` or\n ``s += t``. When applicable, this optimization makes quadratic\n run-time much less likely. This optimization is both version and\n implementation dependent. For performance sensitive code, it is\n preferable to use the ``str.join()`` method which assures\n consistent linear concatenation performance across versions and\n implementations.\n\n Changed in version 2.4: Formerly, string concatenation never\n occurred in-place.\n\n\nString Methods\n==============\n\nBelow are listed the string methods which both 8-bit strings and\nUnicode objects support. Some of them are also available on\n``bytearray`` objects.\n\nIn addition, Python\'s strings support the sequence type methods\ndescribed in the *Sequence Types --- str, unicode, list, tuple,\nbytearray, buffer, xrange* section. To output formatted strings use\ntemplate strings or the ``%`` operator described in the *String\nFormatting Operations* section. Also, see the ``re`` module for string\nfunctions based on regular expressions.\n\nstr.capitalize()\n\n Return a copy of the string with its first character capitalized\n and the rest lowercased.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.center(width[, fillchar])\n\n Return centered in a string of length *width*. Padding is done\n using the specified *fillchar* (default is a space).\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.count(sub[, start[, end]])\n\n Return the number of non-overlapping occurrences of substring *sub*\n in the range [*start*, *end*]. Optional arguments *start* and\n *end* are interpreted as in slice notation.\n\nstr.decode([encoding[, errors]])\n\n Decodes the string using the codec registered for *encoding*.\n *encoding* defaults to the default string encoding. *errors* may\n be given to set a different error handling scheme. The default is\n ``\'strict\'``, meaning that encoding errors raise ``UnicodeError``.\n Other possible values are ``\'ignore\'``, ``\'replace\'`` and any other\n name registered via ``codecs.register_error()``, see section *Codec\n Base Classes*.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for other error handling schemes\n added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.encode([encoding[, errors]])\n\n Return an encoded version of the string. Default encoding is the\n current default string encoding. *errors* may be given to set a\n different error handling scheme. The default for *errors* is\n ``\'strict\'``, meaning that encoding errors raise a\n ``UnicodeError``. Other possible values are ``\'ignore\'``,\n ``\'replace\'``, ``\'xmlcharrefreplace\'``, ``\'backslashreplace\'`` and\n any other name registered via ``codecs.register_error()``, see\n section *Codec Base Classes*. For a list of possible encodings, see\n section *Standard Encodings*.\n\n New in version 2.0.\n\n Changed in version 2.3: Support for ``\'xmlcharrefreplace\'`` and\n ``\'backslashreplace\'`` and other error handling schemes added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.endswith(suffix[, start[, end]])\n\n Return ``True`` if the string ends with the specified *suffix*,\n otherwise return ``False``. *suffix* can also be a tuple of\n suffixes to look for. With optional *start*, test beginning at\n that position. With optional *end*, stop comparing at that\n position.\n\n Changed in version 2.5: Accept tuples as *suffix*.\n\nstr.expandtabs([tabsize])\n\n Return a copy of the string where all tab characters are replaced\n by one or more spaces, depending on the current column and the\n given tab size. Tab positions occur every *tabsize* characters\n (default is 8, giving tab positions at columns 0, 8, 16 and so on).\n To expand the string, the current column is set to zero and the\n string is examined character by character. If the character is a\n tab (``\\t``), one or more space characters are inserted in the\n result until the current column is equal to the next tab position.\n (The tab character itself is not copied.) If the character is a\n newline (``\\n``) or return (``\\r``), it is copied and the current\n column is reset to zero. Any other character is copied unchanged\n and the current column is incremented by one regardless of how the\n character is represented when printed.\n\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs()\n \'01 012 0123 01234\'\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs(4)\n \'01 012 0123 01234\'\n\nstr.find(sub[, start[, end]])\n\n Return the lowest index in the string where substring *sub* is\n found, such that *sub* is contained in the slice ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` if *sub* is not found.\n\n Note: The ``find()`` method should be used only if you need to know the\n position of *sub*. To check if *sub* is a substring or not, use\n the ``in`` operator:\n\n >>> \'Py\' in \'Python\'\n True\n\nstr.format(*args, **kwargs)\n\n Perform a string formatting operation. The string on which this\n method is called can contain literal text or replacement fields\n delimited by braces ``{}``. Each replacement field contains either\n the numeric index of a positional argument, or the name of a\n keyword argument. Returns a copy of the string where each\n replacement field is replaced with the string value of the\n corresponding argument.\n\n >>> "The sum of 1 + 2 is {0}".format(1+2)\n \'The sum of 1 + 2 is 3\'\n\n See *Format String Syntax* for a description of the various\n formatting options that can be specified in format strings.\n\n This method of string formatting is the new standard in Python 3,\n and should be preferred to the ``%`` formatting described in\n *String Formatting Operations* in new code.\n\n New in version 2.6.\n\nstr.index(sub[, start[, end]])\n\n Like ``find()``, but raise ``ValueError`` when the substring is not\n found.\n\nstr.isalnum()\n\n Return true if all characters in the string are alphanumeric and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isalpha()\n\n Return true if all characters in the string are alphabetic and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isdigit()\n\n Return true if all characters in the string are digits and there is\n at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.islower()\n\n Return true if all cased characters [4] in the string are lowercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isspace()\n\n Return true if there are only whitespace characters in the string\n and there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.istitle()\n\n Return true if the string is a titlecased string and there is at\n least one character, for example uppercase characters may only\n follow uncased characters and lowercase characters only cased ones.\n Return false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isupper()\n\n Return true if all cased characters [4] in the string are uppercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.join(iterable)\n\n Return a string which is the concatenation of the strings in the\n *iterable* *iterable*. The separator between elements is the\n string providing this method.\n\nstr.ljust(width[, fillchar])\n\n Return the string left justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.lower()\n\n Return a copy of the string with all the cased characters [4]\n converted to lowercase.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.lstrip([chars])\n\n Return a copy of the string with leading characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a prefix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.lstrip()\n \'spacious \'\n >>> \'www.example.com\'.lstrip(\'cmowz.\')\n \'example.com\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.partition(sep)\n\n Split the string at the first occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing the string itself, followed by\n two empty strings.\n\n New in version 2.5.\n\nstr.replace(old, new[, count])\n\n Return a copy of the string with all occurrences of substring *old*\n replaced by *new*. If the optional argument *count* is given, only\n the first *count* occurrences are replaced.\n\nstr.rfind(sub[, start[, end]])\n\n Return the highest index in the string where substring *sub* is\n found, such that *sub* is contained within ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` on failure.\n\nstr.rindex(sub[, start[, end]])\n\n Like ``rfind()`` but raises ``ValueError`` when the substring *sub*\n is not found.\n\nstr.rjust(width[, fillchar])\n\n Return the string right justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.rpartition(sep)\n\n Split the string at the last occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing two empty strings, followed by\n the string itself.\n\n New in version 2.5.\n\nstr.rsplit([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit* splits\n are done, the *rightmost* ones. If *sep* is not specified or\n ``None``, any whitespace string is a separator. Except for\n splitting from the right, ``rsplit()`` behaves like ``split()``\n which is described in detail below.\n\n New in version 2.4.\n\nstr.rstrip([chars])\n\n Return a copy of the string with trailing characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a suffix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.rstrip()\n \' spacious\'\n >>> \'mississippi\'.rstrip(\'ipz\')\n \'mississ\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.split([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit*\n splits are done (thus, the list will have at most ``maxsplit+1``\n elements). If *maxsplit* is not specified or ``-1``, then there is\n no limit on the number of splits (all possible splits are made).\n\n If *sep* is given, consecutive delimiters are not grouped together\n and are deemed to delimit empty strings (for example,\n ``\'1,,2\'.split(\',\')`` returns ``[\'1\', \'\', \'2\']``). The *sep*\n argument may consist of multiple characters (for example,\n ``\'1<>2<>3\'.split(\'<>\')`` returns ``[\'1\', \'2\', \'3\']``). Splitting\n an empty string with a specified separator returns ``[\'\']``.\n\n If *sep* is not specified or is ``None``, a different splitting\n algorithm is applied: runs of consecutive whitespace are regarded\n as a single separator, and the result will contain no empty strings\n at the start or end if the string has leading or trailing\n whitespace. Consequently, splitting an empty string or a string\n consisting of just whitespace with a ``None`` separator returns\n ``[]``.\n\n For example, ``\' 1 2 3 \'.split()`` returns ``[\'1\', \'2\', \'3\']``,\n and ``\' 1 2 3 \'.split(None, 1)`` returns ``[\'1\', \'2 3 \']``.\n\nstr.splitlines([keepends])\n\n Return a list of the lines in the string, breaking at line\n boundaries. This method uses the *universal newlines* approach to\n splitting lines. Line breaks are not included in the resulting list\n unless *keepends* is given and true.\n\n For example, ``\'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()`` returns\n ``[\'ab c\', \'\', \'de fg\', \'kl\']``, while the same call with\n ``splitlines(True)`` returns ``[\'ab c\\n\', \'\\n\', \'de fg\\r\',\n \'kl\\r\\n\']``.\n\n Unlike ``split()`` when a delimiter string *sep* is given, this\n method returns an empty list for the empty string, and a terminal\n line break does not result in an extra line.\n\nstr.startswith(prefix[, start[, end]])\n\n Return ``True`` if string starts with the *prefix*, otherwise\n return ``False``. *prefix* can also be a tuple of prefixes to look\n for. With optional *start*, test string beginning at that\n position. With optional *end*, stop comparing string at that\n position.\n\n Changed in version 2.5: Accept tuples as *prefix*.\n\nstr.strip([chars])\n\n Return a copy of the string with the leading and trailing\n characters removed. The *chars* argument is a string specifying the\n set of characters to be removed. If omitted or ``None``, the\n *chars* argument defaults to removing whitespace. The *chars*\n argument is not a prefix or suffix; rather, all combinations of its\n values are stripped:\n\n >>> \' spacious \'.strip()\n \'spacious\'\n >>> \'www.example.com\'.strip(\'cmowz.\')\n \'example\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.swapcase()\n\n Return a copy of the string with uppercase characters converted to\n lowercase and vice versa.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.title()\n\n Return a titlecased version of the string where words start with an\n uppercase character and the remaining characters are lowercase.\n\n The algorithm uses a simple language-independent definition of a\n word as groups of consecutive letters. The definition works in\n many contexts but it means that apostrophes in contractions and\n possessives form word boundaries, which may not be the desired\n result:\n\n >>> "they\'re bill\'s friends from the UK".title()\n "They\'Re Bill\'S Friends From The Uk"\n\n A workaround for apostrophes can be constructed using regular\n expressions:\n\n >>> import re\n >>> def titlecase(s):\n ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n ... lambda mo: mo.group(0)[0].upper() +\n ... mo.group(0)[1:].lower(),\n ... s)\n ...\n >>> titlecase("they\'re bill\'s friends.")\n "They\'re Bill\'s Friends."\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.translate(table[, deletechars])\n\n Return a copy of the string where all characters occurring in the\n optional argument *deletechars* are removed, and the remaining\n characters have been mapped through the given translation table,\n which must be a string of length 256.\n\n You can use the ``maketrans()`` helper function in the ``string``\n module to create a translation table. For string objects, set the\n *table* argument to ``None`` for translations that only delete\n characters:\n\n >>> \'read this short text\'.translate(None, \'aeiou\')\n \'rd ths shrt txt\'\n\n New in version 2.6: Support for a ``None`` *table* argument.\n\n For Unicode objects, the ``translate()`` method does not accept the\n optional *deletechars* argument. Instead, it returns a copy of the\n *s* where all characters have been mapped through the given\n translation table which must be a mapping of Unicode ordinals to\n Unicode ordinals, Unicode strings or ``None``. Unmapped characters\n are left untouched. Characters mapped to ``None`` are deleted.\n Note, a more flexible approach is to create a custom character\n mapping codec using the ``codecs`` module (see ``encodings.cp1251``\n for an example).\n\nstr.upper()\n\n Return a copy of the string with all the cased characters [4]\n converted to uppercase. Note that ``str.upper().isupper()`` might\n be ``False`` if ``s`` contains uncased characters or if the Unicode\n category of the resulting character(s) is not "Lu" (Letter,\n uppercase), but e.g. "Lt" (Letter, titlecase).\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.zfill(width)\n\n Return the numeric string left filled with zeros in a string of\n length *width*. A sign prefix is handled correctly. The original\n string is returned if *width* is less than or equal to ``len(s)``.\n\n New in version 2.2.2.\n\nThe following methods are present only on unicode objects:\n\nunicode.isnumeric()\n\n Return ``True`` if there are only numeric characters in S,\n ``False`` otherwise. Numeric characters include digit characters,\n and all characters that have the Unicode numeric value property,\n e.g. U+2155, VULGAR FRACTION ONE FIFTH.\n\nunicode.isdecimal()\n\n Return ``True`` if there are only decimal characters in S,\n ``False`` otherwise. Decimal characters include digit characters,\n and all characters that can be used to form decimal-radix numbers,\n e.g. U+0660, ARABIC-INDIC DIGIT ZERO.\n\n\nString Formatting Operations\n============================\n\nString and Unicode objects have one unique built-in operation: the\n``%`` operator (modulo). This is also known as the string\n*formatting* or *interpolation* operator. Given ``format % values``\n(where *format* is a string or Unicode object), ``%`` conversion\nspecifications in *format* are replaced with zero or more elements of\n*values*. The effect is similar to the using ``sprintf()`` in the C\nlanguage. If *format* is a Unicode object, or if any of the objects\nbeing converted using the ``%s`` conversion are Unicode objects, the\nresult will also be a Unicode object.\n\nIf *format* requires a single argument, *values* may be a single non-\ntuple object. [5] Otherwise, *values* must be a tuple with exactly\nthe number of items specified by the format string, or a single\nmapping object (for example, a dictionary).\n\nA conversion specifier contains two or more characters and has the\nfollowing components, which must occur in this order:\n\n1. The ``\'%\'`` character, which marks the start of the specifier.\n\n2. Mapping key (optional), consisting of a parenthesised sequence of\n characters (for example, ``(somename)``).\n\n3. Conversion flags (optional), which affect the result of some\n conversion types.\n\n4. Minimum field width (optional). If specified as an ``\'*\'``\n (asterisk), the actual width is read from the next element of the\n tuple in *values*, and the object to convert comes after the\n minimum field width and optional precision.\n\n5. Precision (optional), given as a ``\'.\'`` (dot) followed by the\n precision. If specified as ``\'*\'`` (an asterisk), the actual width\n is read from the next element of the tuple in *values*, and the\n value to convert comes after the precision.\n\n6. Length modifier (optional).\n\n7. Conversion type.\n\nWhen the right argument is a dictionary (or other mapping type), then\nthe formats in the string *must* include a parenthesised mapping key\ninto that dictionary inserted immediately after the ``\'%\'`` character.\nThe mapping key selects the value to be formatted from the mapping.\nFor example:\n\n>>> print \'%(language)s has %(number)03d quote types.\' % \\\n... {"language": "Python", "number": 2}\nPython has 002 quote types.\n\nIn this case no ``*`` specifiers may occur in a format (since they\nrequire a sequential parameter list).\n\nThe conversion flag characters are:\n\n+-----------+-----------------------------------------------------------------------+\n| Flag | Meaning |\n+===========+=======================================================================+\n| ``\'#\'`` | The value conversion will use the "alternate form" (where defined |\n| | below). |\n+-----------+-----------------------------------------------------------------------+\n| ``\'0\'`` | The conversion will be zero padded for numeric values. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'-\'`` | The converted value is left adjusted (overrides the ``\'0\'`` |\n| | conversion if both are given). |\n+-----------+-----------------------------------------------------------------------+\n| ``\' \'`` | (a space) A blank should be left before a positive number (or empty |\n| | string) produced by a signed conversion. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'+\'`` | A sign character (``\'+\'`` or ``\'-\'``) will precede the conversion |\n| | (overrides a "space" flag). |\n+-----------+-----------------------------------------------------------------------+\n\nA length modifier (``h``, ``l``, or ``L``) may be present, but is\nignored as it is not necessary for Python -- so e.g. ``%ld`` is\nidentical to ``%d``.\n\nThe conversion types are:\n\n+--------------+-------------------------------------------------------+---------+\n| Conversion | Meaning | Notes |\n+==============+=======================================================+=========+\n| ``\'d\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'i\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'o\'`` | Signed octal value. | (1) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'u\'`` | Obsolete type -- it is identical to ``\'d\'``. | (7) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'x\'`` | Signed hexadecimal (lowercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'X\'`` | Signed hexadecimal (uppercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'e\'`` | Floating point exponential format (lowercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'E\'`` | Floating point exponential format (uppercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'f\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'F\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'g\'`` | Floating point format. Uses lowercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'G\'`` | Floating point format. Uses uppercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'c\'`` | Single character (accepts integer or single character | |\n| | string). | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'r\'`` | String (converts any Python object using *repr()*). | (5) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'s\'`` | String (converts any Python object using ``str()``). | (6) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'%\'`` | No argument is converted, results in a ``\'%\'`` | |\n| | character in the result. | |\n+--------------+-------------------------------------------------------+---------+\n\nNotes:\n\n1. The alternate form causes a leading zero (``\'0\'``) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n2. The alternate form causes a leading ``\'0x\'`` or ``\'0X\'`` (depending\n on whether the ``\'x\'`` or ``\'X\'`` format was used) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n3. The alternate form causes the result to always contain a decimal\n point, even if no digits follow it.\n\n The precision determines the number of digits after the decimal\n point and defaults to 6.\n\n4. The alternate form causes the result to always contain a decimal\n point, and trailing zeroes are not removed as they would otherwise\n be.\n\n The precision determines the number of significant digits before\n and after the decimal point and defaults to 6.\n\n5. The ``%r`` conversion was added in Python 2.0.\n\n The precision determines the maximal number of characters used.\n\n6. If the object or format provided is a ``unicode`` string, the\n resulting string will also be ``unicode``.\n\n The precision determines the maximal number of characters used.\n\n7. See **PEP 237**.\n\nSince Python strings have an explicit length, ``%s`` conversions do\nnot assume that ``\'\\0\'`` is the end of the string.\n\nChanged in version 2.7: ``%f`` conversions for numbers whose absolute\nvalue is over 1e50 are no longer replaced by ``%g`` conversions.\n\nAdditional string operations are defined in standard modules\n``string`` and ``re``.\n\n\nXRange Type\n===========\n\nThe ``xrange`` type is an immutable sequence which is commonly used\nfor looping. The advantage of the ``xrange`` type is that an\n``xrange`` object will always take the same amount of memory, no\nmatter the size of the range it represents. There are no consistent\nperformance advantages.\n\nXRange objects have very little behavior: they only support indexing,\niteration, and the ``len()`` function.\n\n\nMutable Sequence Types\n======================\n\nList and ``bytearray`` objects support additional operations that\nallow in-place modification of the object. Other mutable sequence\ntypes (when added to the language) should also support these\noperations. Strings and tuples are immutable sequence types: such\nobjects cannot be modified once created. The following operations are\ndefined on mutable sequence types (where *x* is an arbitrary object):\n\n+--------------------------------+----------------------------------+-----------------------+\n| Operation | Result | Notes |\n+================================+==================================+=======================+\n| ``s[i] = x`` | item *i* of *s* is replaced by | |\n| | *x* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j] = t`` | slice of *s* from *i* to *j* is | |\n| | replaced by the contents of the | |\n| | iterable *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j]`` | same as ``s[i:j] = []`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j:k] = t`` | the elements of ``s[i:j:k]`` are | (1) |\n| | replaced by those of *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j:k]`` | removes the elements of | |\n| | ``s[i:j:k]`` from the list | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.append(x)`` | same as ``s[len(s):len(s)] = | (2) |\n| | [x]`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.extend(x)`` | same as ``s[len(s):len(s)] = x`` | (3) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.count(x)`` | return number of *i*\'s for which | |\n| | ``s[i] == x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.index(x[, i[, j]])`` | return smallest *k* such that | (4) |\n| | ``s[k] == x`` and ``i <= k < j`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.insert(i, x)`` | same as ``s[i:i] = [x]`` | (5) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.pop([i])`` | same as ``x = s[i]; del s[i]; | (6) |\n| | return x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.remove(x)`` | same as ``del s[s.index(x)]`` | (4) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.reverse()`` | reverses the items of *s* in | (7) |\n| | place | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.sort([cmp[, key[, | sort the items of *s* in place | (7)(8)(9)(10) |\n| reverse]]])`` | | |\n+--------------------------------+----------------------------------+-----------------------+\n\nNotes:\n\n1. *t* must have the same length as the slice it is replacing.\n\n2. The C implementation of Python has historically accepted multiple\n parameters and implicitly joined them into a tuple; this no longer\n works in Python 2.0. Use of this misfeature has been deprecated\n since Python 1.4.\n\n3. *x* can be any iterable object.\n\n4. Raises ``ValueError`` when *x* is not found in *s*. When a negative\n index is passed as the second or third parameter to the ``index()``\n method, the list length is added, as for slice indices. If it is\n still negative, it is truncated to zero, as for slice indices.\n\n Changed in version 2.3: Previously, ``index()`` didn\'t have\n arguments for specifying start and stop positions.\n\n5. When a negative index is passed as the first parameter to the\n ``insert()`` method, the list length is added, as for slice\n indices. If it is still negative, it is truncated to zero, as for\n slice indices.\n\n Changed in version 2.3: Previously, all negative indices were\n truncated to zero.\n\n6. The ``pop()`` method is only supported by the list and array types.\n The optional argument *i* defaults to ``-1``, so that by default\n the last item is removed and returned.\n\n7. The ``sort()`` and ``reverse()`` methods modify the list in place\n for economy of space when sorting or reversing a large list. To\n remind you that they operate by side effect, they don\'t return the\n sorted or reversed list.\n\n8. The ``sort()`` method takes optional arguments for controlling the\n comparisons.\n\n *cmp* specifies a custom comparison function of two arguments (list\n items) which should return a negative, zero or positive number\n depending on whether the first argument is considered smaller than,\n equal to, or larger than the second argument: ``cmp=lambda x,y:\n cmp(x.lower(), y.lower())``. The default value is ``None``.\n\n *key* specifies a function of one argument that is used to extract\n a comparison key from each list element: ``key=str.lower``. The\n default value is ``None``.\n\n *reverse* is a boolean value. If set to ``True``, then the list\n elements are sorted as if each comparison were reversed.\n\n In general, the *key* and *reverse* conversion processes are much\n faster than specifying an equivalent *cmp* function. This is\n because *cmp* is called multiple times for each list element while\n *key* and *reverse* touch each element only once. Use\n ``functools.cmp_to_key()`` to convert an old-style *cmp* function\n to a *key* function.\n\n Changed in version 2.3: Support for ``None`` as an equivalent to\n omitting *cmp* was added.\n\n Changed in version 2.4: Support for *key* and *reverse* was added.\n\n9. Starting with Python 2.3, the ``sort()`` method is guaranteed to be\n stable. A sort is stable if it guarantees not to change the\n relative order of elements that compare equal --- this is helpful\n for sorting in multiple passes (for example, sort by department,\n then by salary grade).\n\n10. **CPython implementation detail:** While a list is being sorted,\n the effect of attempting to mutate, or even inspect, the list is\n undefined. The C implementation of Python 2.3 and newer makes the\n list appear empty for the duration, and raises ``ValueError`` if\n it can detect that the list has been mutated during a sort.\n',
/prebuilts/python/linux-x86/2.7.5/lib/python2.7/pydoc_data/
H A Dtopics.py18 'calls': '\nCalls\n*****\n\nA call calls a callable object (e.g., a *function*) with a possibly\nempty series of *arguments*:\n\n call ::= primary "(" [argument_list [","]\n | expression genexpr_for] ")"\n argument_list ::= positional_arguments ["," keyword_arguments]\n ["," "*" expression] ["," keyword_arguments]\n ["," "**" expression]\n | keyword_arguments ["," "*" expression]\n ["," "**" expression]\n | "*" expression ["," "*" expression] ["," "**" expression]\n | "**" expression\n positional_arguments ::= expression ("," expression)*\n keyword_arguments ::= keyword_item ("," keyword_item)*\n keyword_item ::= identifier "=" expression\n\nA trailing comma may be present after the positional and keyword\narguments but does not affect the semantics.\n\nThe primary must evaluate to a callable object (user-defined\nfunctions, built-in functions, methods of built-in objects, class\nobjects, methods of class instances, and certain class instances\nthemselves are callable; extensions may define additional callable\nobject types). All argument expressions are evaluated before the call\nis attempted. Please refer to section *Function definitions* for the\nsyntax of formal *parameter* lists.\n\nIf keyword arguments are present, they are first converted to\npositional arguments, as follows. First, a list of unfilled slots is\ncreated for the formal parameters. If there are N positional\narguments, they are placed in the first N slots. Next, for each\nkeyword argument, the identifier is used to determine the\ncorresponding slot (if the identifier is the same as the first formal\nparameter name, the first slot is used, and so on). If the slot is\nalready filled, a ``TypeError`` exception is raised. Otherwise, the\nvalue of the argument is placed in the slot, filling it (even if the\nexpression is ``None``, it fills the slot). When all arguments have\nbeen processed, the slots that are still unfilled are filled with the\ncorresponding default value from the function definition. (Default\nvalues are calculated, once, when the function is defined; thus, a\nmutable object such as a list or dictionary used as default value will\nbe shared by all calls that don\'t specify an argument value for the\ncorresponding slot; this should usually be avoided.) If there are any\nunfilled slots for which no default value is specified, a\n``TypeError`` exception is raised. Otherwise, the list of filled\nslots is used as the argument list for the call.\n\n**CPython implementation detail:** An implementation may provide\nbuilt-in functions whose positional parameters do not have names, even\nif they are \'named\' for the purpose of documentation, and which\ntherefore cannot be supplied by keyword. In CPython, this is the case\nfor functions implemented in C that use ``PyArg_ParseTuple()`` to\nparse their arguments.\n\nIf there are more positional arguments than there are formal parameter\nslots, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``*identifier`` is present; in this case, that formal\nparameter receives a tuple containing the excess positional arguments\n(or an empty tuple if there were no excess positional arguments).\n\nIf any keyword argument does not correspond to a formal parameter\nname, a ``TypeError`` exception is raised, unless a formal parameter\nusing the syntax ``**identifier`` is present; in this case, that\nformal parameter receives a dictionary containing the excess keyword\narguments (using the keywords as keys and the argument values as\ncorresponding values), or a (new) empty dictionary if there were no\nexcess keyword arguments.\n\nIf the syntax ``*expression`` appears in the function call,\n``expression`` must evaluate to an iterable. Elements from this\niterable are treated as if they were additional positional arguments;\nif there are positional arguments *x1*, ..., *xN*, and ``expression``\nevaluates to a sequence *y1*, ..., *yM*, this is equivalent to a call\nwith M+N positional arguments *x1*, ..., *xN*, *y1*, ..., *yM*.\n\nA consequence of this is that although the ``*expression`` syntax may\nappear *after* some keyword arguments, it is processed *before* the\nkeyword arguments (and the ``**expression`` argument, if any -- see\nbelow). So:\n\n >>> def f(a, b):\n ... print a, b\n ...\n >>> f(b=1, *(2,))\n 2 1\n >>> f(a=1, *(2,))\n Traceback (most recent call last):\n File "<stdin>", line 1, in ?\n TypeError: f() got multiple values for keyword argument \'a\'\n >>> f(1, *(2,))\n 1 2\n\nIt is unusual for both keyword arguments and the ``*expression``\nsyntax to be used in the same call, so in practice this confusion does\nnot arise.\n\nIf the syntax ``**expression`` appears in the function call,\n``expression`` must evaluate to a mapping, the contents of which are\ntreated as additional keyword arguments. In the case of a keyword\nappearing in both ``expression`` and as an explicit keyword argument,\na ``TypeError`` exception is raised.\n\nFormal parameters using the syntax ``*identifier`` or ``**identifier``\ncannot be used as positional argument slots or as keyword argument\nnames. Formal parameters using the syntax ``(sublist)`` cannot be\nused as keyword argument names; the outermost sublist corresponds to a\nsingle unnamed argument slot, and the argument value is assigned to\nthe sublist using the usual tuple assignment rules after all other\nparameter processing is done.\n\nA call always returns some value, possibly ``None``, unless it raises\nan exception. How this value is computed depends on the type of the\ncallable object.\n\nIf it is---\n\na user-defined function:\n The code block for the function is executed, passing it the\n argument list. The first thing the code block will do is bind the\n formal parameters to the arguments; this is described in section\n *Function definitions*. When the code block executes a ``return``\n statement, this specifies the return value of the function call.\n\na built-in function or method:\n The result is up to the interpreter; see *Built-in Functions* for\n the descriptions of built-in functions and methods.\n\na class object:\n A new instance of that class is returned.\n\na class instance method:\n The corresponding user-defined function is called, with an argument\n list that is one longer than the argument list of the call: the\n instance becomes the first argument.\n\na class instance:\n The class must define a ``__call__()`` method; the effect is then\n the same as if that method was called.\n',
21 'compound': '\nCompound statements\n*******************\n\nCompound statements contain (groups of) other statements; they affect\nor control the execution of those other statements in some way. In\ngeneral, compound statements span multiple lines, although in simple\nincarnations a whole compound statement may be contained in one line.\n\nThe ``if``, ``while`` and ``for`` statements implement traditional\ncontrol flow constructs. ``try`` specifies exception handlers and/or\ncleanup code for a group of statements. Function and class\ndefinitions are also syntactically compound statements.\n\nCompound statements consist of one or more \'clauses.\' A clause\nconsists of a header and a \'suite.\' The clause headers of a\nparticular compound statement are all at the same indentation level.\nEach clause header begins with a uniquely identifying keyword and ends\nwith a colon. A suite is a group of statements controlled by a\nclause. A suite can be one or more semicolon-separated simple\nstatements on the same line as the header, following the header\'s\ncolon, or it can be one or more indented statements on subsequent\nlines. Only the latter form of suite can contain nested compound\nstatements; the following is illegal, mostly because it wouldn\'t be\nclear to which ``if`` clause a following ``else`` clause would belong:\n\n if test1: if test2: print x\n\nAlso note that the semicolon binds tighter than the colon in this\ncontext, so that in the following example, either all or none of the\n``print`` statements are executed:\n\n if x < y < z: print x; print y; print z\n\nSummarizing:\n\n compound_stmt ::= if_stmt\n | while_stmt\n | for_stmt\n | try_stmt\n | with_stmt\n | funcdef\n | classdef\n | decorated\n suite ::= stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT\n statement ::= stmt_list NEWLINE | compound_stmt\n stmt_list ::= simple_stmt (";" simple_stmt)* [";"]\n\nNote that statements always end in a ``NEWLINE`` possibly followed by\na ``DEDENT``. Also note that optional continuation clauses always\nbegin with a keyword that cannot start a statement, thus there are no\nambiguities (the \'dangling ``else``\' problem is solved in Python by\nrequiring nested ``if`` statements to be indented).\n\nThe formatting of the grammar rules in the following sections places\neach clause on a separate line for clarity.\n\n\nThe ``if`` statement\n====================\n\nThe ``if`` statement is used for conditional execution:\n\n if_stmt ::= "if" expression ":" suite\n ( "elif" expression ":" suite )*\n ["else" ":" suite]\n\nIt selects exactly one of the suites by evaluating the expressions one\nby one until one is found to be true (see section *Boolean operations*\nfor the definition of true and false); then that suite is executed\n(and no other part of the ``if`` statement is executed or evaluated).\nIf all expressions are false, the suite of the ``else`` clause, if\npresent, is executed.\n\n\nThe ``while`` statement\n=======================\n\nThe ``while`` statement is used for repeated execution as long as an\nexpression is true:\n\n while_stmt ::= "while" expression ":" suite\n ["else" ":" suite]\n\nThis repeatedly tests the expression and, if it is true, executes the\nfirst suite; if the expression is false (which may be the first time\nit is tested) the suite of the ``else`` clause, if present, is\nexecuted and the loop terminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ngoes back to testing the expression.\n\n\nThe ``for`` statement\n=====================\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n\n\nThe ``try`` statement\n=====================\n\nThe ``try`` statement specifies exception handlers and/or cleanup code\nfor a group of statements:\n\n try_stmt ::= try1_stmt | try2_stmt\n try1_stmt ::= "try" ":" suite\n ("except" [expression [("as" | ",") target]] ":" suite)+\n ["else" ":" suite]\n ["finally" ":" suite]\n try2_stmt ::= "try" ":" suite\n "finally" ":" suite\n\nChanged in version 2.5: In previous versions of Python,\n``try``...``except``...``finally`` did not work. ``try``...``except``\nhad to be nested in ``try``...``finally``.\n\nThe ``except`` clause(s) specify one or more exception handlers. When\nno exception occurs in the ``try`` clause, no exception handler is\nexecuted. When an exception occurs in the ``try`` suite, a search for\nan exception handler is started. This search inspects the except\nclauses in turn until one is found that matches the exception. An\nexpression-less except clause, if present, must be last; it matches\nany exception. For an except clause with an expression, that\nexpression is evaluated, and the clause matches the exception if the\nresulting object is "compatible" with the exception. An object is\ncompatible with an exception if it is the class or a base class of the\nexception object, or a tuple containing an item compatible with the\nexception.\n\nIf no except clause matches the exception, the search for an exception\nhandler continues in the surrounding code and on the invocation stack.\n[1]\n\nIf the evaluation of an expression in the header of an except clause\nraises an exception, the original search for a handler is canceled and\na search starts for the new exception in the surrounding code and on\nthe call stack (it is treated as if the entire ``try`` statement\nraised the exception).\n\nWhen a matching except clause is found, the exception is assigned to\nthe target specified in that except clause, if present, and the except\nclause\'s suite is executed. All except clauses must have an\nexecutable block. When the end of this block is reached, execution\ncontinues normally after the entire try statement. (This means that\nif two nested handlers exist for the same exception, and the exception\noccurs in the try clause of the inner handler, the outer handler will\nnot handle the exception.)\n\nBefore an except clause\'s suite is executed, details about the\nexception are assigned to three variables in the ``sys`` module:\n``sys.exc_type`` receives the object identifying the exception;\n``sys.exc_value`` receives the exception\'s parameter;\n``sys.exc_traceback`` receives a traceback object (see section *The\nstandard type hierarchy*) identifying the point in the program where\nthe exception occurred. These details are also available through the\n``sys.exc_info()`` function, which returns a tuple ``(exc_type,\nexc_value, exc_traceback)``. Use of the corresponding variables is\ndeprecated in favor of this function, since their use is unsafe in a\nthreaded program. As of Python 1.5, the variables are restored to\ntheir previous values (before the call) when returning from a function\nthat handled an exception.\n\nThe optional ``else`` clause is executed if and when control flows off\nthe end of the ``try`` clause. [2] Exceptions in the ``else`` clause\nare not handled by the preceding ``except`` clauses.\n\nIf ``finally`` is present, it specifies a \'cleanup\' handler. The\n``try`` clause is executed, including any ``except`` and ``else``\nclauses. If an exception occurs in any of the clauses and is not\nhandled, the exception is temporarily saved. The ``finally`` clause is\nexecuted. If there is a saved exception, it is re-raised at the end\nof the ``finally`` clause. If the ``finally`` clause raises another\nexception or executes a ``return`` or ``break`` statement, the saved\nexception is discarded:\n\n def f():\n try:\n 1/0\n finally:\n return 42\n\n >>> f()\n 42\n\nThe exception information is not available to the program during\nexecution of the ``finally`` clause.\n\nWhen a ``return``, ``break`` or ``continue`` statement is executed in\nthe ``try`` suite of a ``try``...``finally`` statement, the\n``finally`` clause is also executed \'on the way out.\' A ``continue``\nstatement is illegal in the ``finally`` clause. (The reason is a\nproblem with the current implementation --- this restriction may be\nlifted in the future).\n\nAdditional information on exceptions can be found in section\n*Exceptions*, and information on using the ``raise`` statement to\ngenerate exceptions may be found in section *The raise statement*.\n\n\nThe ``with`` statement\n======================\n\nNew in version 2.5.\n\nThe ``with`` statement is used to wrap the execution of a block with\nmethods defined by a context manager (see section *With Statement\nContext Managers*). This allows common\n``try``...``except``...``finally`` usage patterns to be encapsulated\nfor convenient reuse.\n\n with_stmt ::= "with" with_item ("," with_item)* ":" suite\n with_item ::= expression ["as" target]\n\nThe execution of the ``with`` statement with one "item" proceeds as\nfollows:\n\n1. The context expression (the expression given in the ``with_item``)\n is evaluated to obtain a context manager.\n\n2. The context manager\'s ``__exit__()`` is loaded for later use.\n\n3. The context manager\'s ``__enter__()`` method is invoked.\n\n4. If a target was included in the ``with`` statement, the return\n value from ``__enter__()`` is assigned to it.\n\n Note: The ``with`` statement guarantees that if the ``__enter__()``\n method returns without an error, then ``__exit__()`` will always\n be called. Thus, if an error occurs during the assignment to the\n target list, it will be treated the same as an error occurring\n within the suite would be. See step 6 below.\n\n5. The suite is executed.\n\n6. The context manager\'s ``__exit__()`` method is invoked. If an\n exception caused the suite to be exited, its type, value, and\n traceback are passed as arguments to ``__exit__()``. Otherwise,\n three ``None`` arguments are supplied.\n\n If the suite was exited due to an exception, and the return value\n from the ``__exit__()`` method was false, the exception is\n reraised. If the return value was true, the exception is\n suppressed, and execution continues with the statement following\n the ``with`` statement.\n\n If the suite was exited for any reason other than an exception, the\n return value from ``__exit__()`` is ignored, and execution proceeds\n at the normal location for the kind of exit that was taken.\n\nWith more than one item, the context managers are processed as if\nmultiple ``with`` statements were nested:\n\n with A() as a, B() as b:\n suite\n\nis equivalent to\n\n with A() as a:\n with B() as b:\n suite\n\nNote: In Python 2.5, the ``with`` statement is only allowed when the\n ``with_statement`` feature has been enabled. It is always enabled\n in Python 2.6.\n\nChanged in version 2.7: Support for multiple context expressions.\n\nSee also:\n\n **PEP 0343** - The "with" statement\n The specification, background, and examples for the Python\n ``with`` statement.\n\n\nFunction definitions\n====================\n\nA function definition defines a user-defined function object (see\nsection *The standard type hierarchy*):\n\n decorated ::= decorators (classdef | funcdef)\n decorators ::= decorator+\n decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE\n funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite\n dotted_name ::= identifier ("." identifier)*\n parameter_list ::= (defparameter ",")*\n ( "*" identifier ["," "**" identifier]\n | "**" identifier\n | defparameter [","] )\n defparameter ::= parameter ["=" expression]\n sublist ::= parameter ("," parameter)* [","]\n parameter ::= identifier | "(" sublist ")"\n funcname ::= identifier\n\nA function definition is an executable statement. Its execution binds\nthe function name in the current local namespace to a function object\n(a wrapper around the executable code for the function). This\nfunction object contains a reference to the current global namespace\nas the global namespace to be used when the function is called.\n\nThe function definition does not execute the function body; this gets\nexecuted only when the function is called. [3]\n\nA function definition may be wrapped by one or more *decorator*\nexpressions. Decorator expressions are evaluated when the function is\ndefined, in the scope that contains the function definition. The\nresult must be a callable, which is invoked with the function object\nas the only argument. The returned value is bound to the function name\ninstead of the function object. Multiple decorators are applied in\nnested fashion. For example, the following code:\n\n @f1(arg)\n @f2\n def func(): pass\n\nis equivalent to:\n\n def func(): pass\n func = f1(arg)(f2(func))\n\nWhen one or more top-level *parameters* have the form *parameter*\n``=`` *expression*, the function is said to have "default parameter\nvalues." For a parameter with a default value, the corresponding\n*argument* may be omitted from a call, in which case the parameter\'s\ndefault value is substituted. If a parameter has a default value, all\nfollowing parameters must also have a default value --- this is a\nsyntactic restriction that is not expressed by the grammar.\n\n**Default parameter values are evaluated when the function definition\nis executed.** This means that the expression is evaluated once, when\nthe function is defined, and that the same "pre-computed" value is\nused for each call. This is especially important to understand when a\ndefault parameter is a mutable object, such as a list or a dictionary:\nif the function modifies the object (e.g. by appending an item to a\nlist), the default value is in effect modified. This is generally not\nwhat was intended. A way around this is to use ``None`` as the\ndefault, and explicitly test for it in the body of the function, e.g.:\n\n def whats_on_the_telly(penguin=None):\n if penguin is None:\n penguin = []\n penguin.append("property of the zoo")\n return penguin\n\nFunction call semantics are described in more detail in section\n*Calls*. A function call always assigns values to all parameters\nmentioned in the parameter list, either from position arguments, from\nkeyword arguments, or from default values. If the form\n"``*identifier``" is present, it is initialized to a tuple receiving\nany excess positional parameters, defaulting to the empty tuple. If\nthe form "``**identifier``" is present, it is initialized to a new\ndictionary receiving any excess keyword arguments, defaulting to a new\nempty dictionary.\n\nIt is also possible to create anonymous functions (functions not bound\nto a name), for immediate use in expressions. This uses lambda forms,\ndescribed in section *Lambdas*. Note that the lambda form is merely a\nshorthand for a simplified function definition; a function defined in\na "``def``" statement can be passed around or assigned to another name\njust like a function defined by a lambda form. The "``def``" form is\nactually more powerful since it allows the execution of multiple\nstatements.\n\n**Programmer\'s note:** Functions are first-class objects. A "``def``"\nform executed inside a function definition defines a local function\nthat can be returned or passed around. Free variables used in the\nnested function can access the local variables of the function\ncontaining the def. See section *Naming and binding* for details.\n\n\nClass definitions\n=================\n\nA class definition defines a class object (see section *The standard\ntype hierarchy*):\n\n classdef ::= "class" classname [inheritance] ":" suite\n inheritance ::= "(" [expression_list] ")"\n classname ::= identifier\n\nA class definition is an executable statement. It first evaluates the\ninheritance list, if present. Each item in the inheritance list\nshould evaluate to a class object or class type which allows\nsubclassing. The class\'s suite is then executed in a new execution\nframe (see section *Naming and binding*), using a newly created local\nnamespace and the original global namespace. (Usually, the suite\ncontains only function definitions.) When the class\'s suite finishes\nexecution, its execution frame is discarded but its local namespace is\nsaved. [4] A class object is then created using the inheritance list\nfor the base classes and the saved local namespace for the attribute\ndictionary. The class name is bound to this class object in the\noriginal local namespace.\n\n**Programmer\'s note:** Variables defined in the class definition are\nclass variables; they are shared by all instances. To create instance\nvariables, they can be set in a method with ``self.name = value``.\nBoth class and instance variables are accessible through the notation\n"``self.name``", and an instance variable hides a class variable with\nthe same name when accessed in this way. Class variables can be used\nas defaults for instance variables, but using mutable values there can\nlead to unexpected results. For *new-style class*es, descriptors can\nbe used to create instance variables with different implementation\ndetails.\n\nClass definitions, like function definitions, may be wrapped by one or\nmore *decorator* expressions. The evaluation rules for the decorator\nexpressions are the same as for functions. The result must be a class\nobject, which is then bound to the class name.\n\n-[ Footnotes ]-\n\n[1] The exception is propagated to the invocation stack unless there\n is a ``finally`` clause which happens to raise another exception.\n That new exception causes the old one to be lost.\n\n[2] Currently, control "flows off the end" except in the case of an\n exception or the execution of a ``return``, ``continue``, or\n ``break`` statement.\n\n[3] A string literal appearing as the first statement in the function\n body is transformed into the function\'s ``__doc__`` attribute and\n therefore the function\'s *docstring*.\n\n[4] A string literal appearing as the first statement in the class\n body is transformed into the namespace\'s ``__doc__`` item and\n therefore the class\'s *docstring*.\n',
35 'for': '\nThe ``for`` statement\n*********************\n\nThe ``for`` statement is used to iterate over the elements of a\nsequence (such as a string, tuple or list) or other iterable object:\n\n for_stmt ::= "for" target_list "in" expression_list ":" suite\n ["else" ":" suite]\n\nThe expression list is evaluated once; it should yield an iterable\nobject. An iterator is created for the result of the\n``expression_list``. The suite is then executed once for each item\nprovided by the iterator, in the order of ascending indices. Each\nitem in turn is assigned to the target list using the standard rules\nfor assignments, and then the suite is executed. When the items are\nexhausted (which is immediately when the sequence is empty), the suite\nin the ``else`` clause, if present, is executed, and the loop\nterminates.\n\nA ``break`` statement executed in the first suite terminates the loop\nwithout executing the ``else`` clause\'s suite. A ``continue``\nstatement executed in the first suite skips the rest of the suite and\ncontinues with the next item, or with the ``else`` clause if there was\nno next item.\n\nThe suite may assign to the variable(s) in the target list; this does\nnot affect the next item assigned to it.\n\nThe target list is not deleted when the loop is finished, but if the\nsequence is empty, it will not have been assigned to at all by the\nloop. Hint: the built-in function ``range()`` returns a sequence of\nintegers suitable to emulate the effect of Pascal\'s ``for i := a to b\ndo``; e.g., ``range(3)`` returns the list ``[0, 1, 2]``.\n\nNote: There is a subtlety when the sequence is being modified by the loop\n (this can only occur for mutable sequences, i.e. lists). An internal\n counter is used to keep track of which item is used next, and this\n is incremented on each iteration. When this counter has reached the\n length of the sequence the loop terminates. This means that if the\n suite deletes the current (or a previous) item from the sequence,\n the next item will be skipped (since it gets the index of the\n current item which has already been treated). Likewise, if the\n suite inserts an item in the sequence before the current item, the\n current item will be treated again the next time through the loop.\n This can lead to nasty bugs that can be avoided by making a\n temporary copy using a slice of the whole sequence, e.g.,\n\n for x in a[:]:\n if x < 0: a.remove(x)\n',
38 'global': '\nThe ``global`` statement\n************************\n\n global_stmt ::= "global" identifier ("," identifier)*\n\nThe ``global`` statement is a declaration which holds for the entire\ncurrent code block. It means that the listed identifiers are to be\ninterpreted as globals. It would be impossible to assign to a global\nvariable without ``global``, although free variables may refer to\nglobals without being declared global.\n\nNames listed in a ``global`` statement must not be used in the same\ncode block textually preceding that ``global`` statement.\n\nNames listed in a ``global`` statement must not be defined as formal\nparameters or in a ``for`` loop control target, ``class`` definition,\nfunction definition, or ``import`` statement.\n\n**CPython implementation detail:** The current implementation does not\nenforce the latter two restrictions, but programs should not abuse\nthis freedom, as future implementations may enforce them or silently\nchange the meaning of the program.\n\n**Programmer\'s note:** the ``global`` is a directive to the parser.\nIt applies only to code parsed at the same time as the ``global``\nstatement. In particular, a ``global`` statement contained in an\n``exec`` statement does not affect the code block *containing* the\n``exec`` statement, and code contained in an ``exec`` statement is\nunaffected by ``global`` statements in the code containing the\n``exec`` statement. The same applies to the ``eval()``,\n``execfile()`` and ``compile()`` functions.\n',
51 'objects': '\nObjects, values and types\n*************************\n\n*Objects* are Python\'s abstraction for data. All data in a Python\nprogram is represented by objects or by relations between objects. (In\na sense, and in conformance to Von Neumann\'s model of a "stored\nprogram computer," code is also represented by objects.)\n\nEvery object has an identity, a type and a value. An object\'s\n*identity* never changes once it has been created; you may think of it\nas the object\'s address in memory. The \'``is``\' operator compares the\nidentity of two objects; the ``id()`` function returns an integer\nrepresenting its identity (currently implemented as its address). An\nobject\'s *type* is also unchangeable. [1] An object\'s type determines\nthe operations that the object supports (e.g., "does it have a\nlength?") and also defines the possible values for objects of that\ntype. The ``type()`` function returns an object\'s type (which is an\nobject itself). The *value* of some objects can change. Objects\nwhose value can change are said to be *mutable*; objects whose value\nis unchangeable once they are created are called *immutable*. (The\nvalue of an immutable container object that contains a reference to a\nmutable object can change when the latter\'s value is changed; however\nthe container is still considered immutable, because the collection of\nobjects it contains cannot be changed. So, immutability is not\nstrictly the same as having an unchangeable value, it is more subtle.)\nAn object\'s mutability is determined by its type; for instance,\nnumbers, strings and tuples are immutable, while dictionaries and\nlists are mutable.\n\nObjects are never explicitly destroyed; however, when they become\nunreachable they may be garbage-collected. An implementation is\nallowed to postpone garbage collection or omit it altogether --- it is\na matter of implementation quality how garbage collection is\nimplemented, as long as no objects are collected that are still\nreachable.\n\n**CPython implementation detail:** CPython currently uses a reference-\ncounting scheme with (optional) delayed detection of cyclically linked\ngarbage, which collects most objects as soon as they become\nunreachable, but is not guaranteed to collect garbage containing\ncircular references. See the documentation of the ``gc`` module for\ninformation on controlling the collection of cyclic garbage. Other\nimplementations act differently and CPython may change. Do not depend\non immediate finalization of objects when they become unreachable (ex:\nalways close files).\n\nNote that the use of the implementation\'s tracing or debugging\nfacilities may keep objects alive that would normally be collectable.\nAlso note that catching an exception with a \'``try``...``except``\'\nstatement may keep objects alive.\n\nSome objects contain references to "external" resources such as open\nfiles or windows. It is understood that these resources are freed\nwhen the object is garbage-collected, but since garbage collection is\nnot guaranteed to happen, such objects also provide an explicit way to\nrelease the external resource, usually a ``close()`` method. Programs\nare strongly recommended to explicitly close such objects. The\n\'``try``...``finally``\' statement provides a convenient way to do\nthis.\n\nSome objects contain references to other objects; these are called\n*containers*. Examples of containers are tuples, lists and\ndictionaries. The references are part of a container\'s value. In\nmost cases, when we talk about the value of a container, we imply the\nvalues, not the identities of the contained objects; however, when we\ntalk about the mutability of a container, only the identities of the\nimmediately contained objects are implied. So, if an immutable\ncontainer (like a tuple) contains a reference to a mutable object, its\nvalue changes if that mutable object is changed.\n\nTypes affect almost all aspects of object behavior. Even the\nimportance of object identity is affected in some sense: for immutable\ntypes, operations that compute new values may actually return a\nreference to any existing object with the same type and value, while\nfor mutable objects this is not allowed. E.g., after ``a = 1; b =\n1``, ``a`` and ``b`` may or may not refer to the same object with the\nvalue one, depending on the implementation, but after ``c = []; d =\n[]``, ``c`` and ``d`` are guaranteed to refer to two different,\nunique, newly created empty lists. (Note that ``c = d = []`` assigns\nthe same object to both ``c`` and ``d``.)\n',
72 'typesseq': '\nSequence Types --- ``str``, ``unicode``, ``list``, ``tuple``, ``bytearray``, ``buffer``, ``xrange``\n***************************************************************************************************\n\nThere are seven sequence types: strings, Unicode strings, lists,\ntuples, bytearrays, buffers, and xrange objects.\n\nFor other containers see the built in ``dict`` and ``set`` classes,\nand the ``collections`` module.\n\nString literals are written in single or double quotes: ``\'xyzzy\'``,\n``"frobozz"``. See *String literals* for more about string literals.\nUnicode strings are much like strings, but are specified in the syntax\nusing a preceding ``\'u\'`` character: ``u\'abc\'``, ``u"def"``. In\naddition to the functionality described here, there are also string-\nspecific methods described in the *String Methods* section. Lists are\nconstructed with square brackets, separating items with commas: ``[a,\nb, c]``. Tuples are constructed by the comma operator (not within\nsquare brackets), with or without enclosing parentheses, but an empty\ntuple must have the enclosing parentheses, such as ``a, b, c`` or\n``()``. A single item tuple must have a trailing comma, such as\n``(d,)``.\n\nBytearray objects are created with the built-in function\n``bytearray()``.\n\nBuffer objects are not directly supported by Python syntax, but can be\ncreated by calling the built-in function ``buffer()``. They don\'t\nsupport concatenation or repetition.\n\nObjects of type xrange are similar to buffers in that there is no\nspecific syntax to create them, but they are created using the\n``xrange()`` function. They don\'t support slicing, concatenation or\nrepetition, and using ``in``, ``not in``, ``min()`` or ``max()`` on\nthem is inefficient.\n\nMost sequence types support the following operations. The ``in`` and\n``not in`` operations have the same priorities as the comparison\noperations. The ``+`` and ``*`` operations have the same priority as\nthe corresponding numeric operations. [3] Additional methods are\nprovided for *Mutable Sequence Types*.\n\nThis table lists the sequence operations sorted in ascending priority\n(operations in the same box have the same priority). In the table,\n*s* and *t* are sequences of the same type; *n*, *i* and *j* are\nintegers:\n\n+--------------------+----------------------------------+------------+\n| Operation | Result | Notes |\n+====================+==================================+============+\n| ``x in s`` | ``True`` if an item of *s* is | (1) |\n| | equal to *x*, else ``False`` | |\n+--------------------+----------------------------------+------------+\n| ``x not in s`` | ``False`` if an item of *s* is | (1) |\n| | equal to *x*, else ``True`` | |\n+--------------------+----------------------------------+------------+\n| ``s + t`` | the concatenation of *s* and *t* | (6) |\n+--------------------+----------------------------------+------------+\n| ``s * n, n * s`` | *n* shallow copies of *s* | (2) |\n| | concatenated | |\n+--------------------+----------------------------------+------------+\n| ``s[i]`` | *i*th item of *s*, origin 0 | (3) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j]`` | slice of *s* from *i* to *j* | (3)(4) |\n+--------------------+----------------------------------+------------+\n| ``s[i:j:k]`` | slice of *s* from *i* to *j* | (3)(5) |\n| | with step *k* | |\n+--------------------+----------------------------------+------------+\n| ``len(s)`` | length of *s* | |\n+--------------------+----------------------------------+------------+\n| ``min(s)`` | smallest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``max(s)`` | largest item of *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.index(i)`` | index of the first occurence of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n| ``s.count(i)`` | total number of occurences of | |\n| | *i* in *s* | |\n+--------------------+----------------------------------+------------+\n\nSequence types also support comparisons. In particular, tuples and\nlists are compared lexicographically by comparing corresponding\nelements. This means that to compare equal, every element must compare\nequal and the two sequences must be of the same type and have the same\nlength. (For full details see *Comparisons* in the language\nreference.)\n\nNotes:\n\n1. When *s* is a string or Unicode string object the ``in`` and ``not\n in`` operations act like a substring test. In Python versions\n before 2.3, *x* had to be a string of length 1. In Python 2.3 and\n beyond, *x* may be a string of any length.\n\n2. Values of *n* less than ``0`` are treated as ``0`` (which yields an\n empty sequence of the same type as *s*). Note also that the copies\n are shallow; nested structures are not copied. This often haunts\n new Python programmers; consider:\n\n >>> lists = [[]] * 3\n >>> lists\n [[], [], []]\n >>> lists[0].append(3)\n >>> lists\n [[3], [3], [3]]\n\n What has happened is that ``[[]]`` is a one-element list containing\n an empty list, so all three elements of ``[[]] * 3`` are (pointers\n to) this single empty list. Modifying any of the elements of\n ``lists`` modifies this single list. You can create a list of\n different lists this way:\n\n >>> lists = [[] for i in range(3)]\n >>> lists[0].append(3)\n >>> lists[1].append(5)\n >>> lists[2].append(7)\n >>> lists\n [[3], [5], [7]]\n\n3. If *i* or *j* is negative, the index is relative to the end of the\n string: ``len(s) + i`` or ``len(s) + j`` is substituted. But note\n that ``-0`` is still ``0``.\n\n4. The slice of *s* from *i* to *j* is defined as the sequence of\n items with index *k* such that ``i <= k < j``. If *i* or *j* is\n greater than ``len(s)``, use ``len(s)``. If *i* is omitted or\n ``None``, use ``0``. If *j* is omitted or ``None``, use\n ``len(s)``. If *i* is greater than or equal to *j*, the slice is\n empty.\n\n5. The slice of *s* from *i* to *j* with step *k* is defined as the\n sequence of items with index ``x = i + n*k`` such that ``0 <= n <\n (j-i)/k``. In other words, the indices are ``i``, ``i+k``,\n ``i+2*k``, ``i+3*k`` and so on, stopping when *j* is reached (but\n never including *j*). If *i* or *j* is greater than ``len(s)``,\n use ``len(s)``. If *i* or *j* are omitted or ``None``, they become\n "end" values (which end depends on the sign of *k*). Note, *k*\n cannot be zero. If *k* is ``None``, it is treated like ``1``.\n\n6. **CPython implementation detail:** If *s* and *t* are both strings,\n some Python implementations such as CPython can usually perform an\n in-place optimization for assignments of the form ``s = s + t`` or\n ``s += t``. When applicable, this optimization makes quadratic\n run-time much less likely. This optimization is both version and\n implementation dependent. For performance sensitive code, it is\n preferable to use the ``str.join()`` method which assures\n consistent linear concatenation performance across versions and\n implementations.\n\n Changed in version 2.4: Formerly, string concatenation never\n occurred in-place.\n\n\nString Methods\n==============\n\nBelow are listed the string methods which both 8-bit strings and\nUnicode objects support. Some of them are also available on\n``bytearray`` objects.\n\nIn addition, Python\'s strings support the sequence type methods\ndescribed in the *Sequence Types --- str, unicode, list, tuple,\nbytearray, buffer, xrange* section. To output formatted strings use\ntemplate strings or the ``%`` operator described in the *String\nFormatting Operations* section. Also, see the ``re`` module for string\nfunctions based on regular expressions.\n\nstr.capitalize()\n\n Return a copy of the string with its first character capitalized\n and the rest lowercased.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.center(width[, fillchar])\n\n Return centered in a string of length *width*. Padding is done\n using the specified *fillchar* (default is a space).\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.count(sub[, start[, end]])\n\n Return the number of non-overlapping occurrences of substring *sub*\n in the range [*start*, *end*]. Optional arguments *start* and\n *end* are interpreted as in slice notation.\n\nstr.decode([encoding[, errors]])\n\n Decodes the string using the codec registered for *encoding*.\n *encoding* defaults to the default string encoding. *errors* may\n be given to set a different error handling scheme. The default is\n ``\'strict\'``, meaning that encoding errors raise ``UnicodeError``.\n Other possible values are ``\'ignore\'``, ``\'replace\'`` and any other\n name registered via ``codecs.register_error()``, see section *Codec\n Base Classes*.\n\n New in version 2.2.\n\n Changed in version 2.3: Support for other error handling schemes\n added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.encode([encoding[, errors]])\n\n Return an encoded version of the string. Default encoding is the\n current default string encoding. *errors* may be given to set a\n different error handling scheme. The default for *errors* is\n ``\'strict\'``, meaning that encoding errors raise a\n ``UnicodeError``. Other possible values are ``\'ignore\'``,\n ``\'replace\'``, ``\'xmlcharrefreplace\'``, ``\'backslashreplace\'`` and\n any other name registered via ``codecs.register_error()``, see\n section *Codec Base Classes*. For a list of possible encodings, see\n section *Standard Encodings*.\n\n New in version 2.0.\n\n Changed in version 2.3: Support for ``\'xmlcharrefreplace\'`` and\n ``\'backslashreplace\'`` and other error handling schemes added.\n\n Changed in version 2.7: Support for keyword arguments added.\n\nstr.endswith(suffix[, start[, end]])\n\n Return ``True`` if the string ends with the specified *suffix*,\n otherwise return ``False``. *suffix* can also be a tuple of\n suffixes to look for. With optional *start*, test beginning at\n that position. With optional *end*, stop comparing at that\n position.\n\n Changed in version 2.5: Accept tuples as *suffix*.\n\nstr.expandtabs([tabsize])\n\n Return a copy of the string where all tab characters are replaced\n by one or more spaces, depending on the current column and the\n given tab size. Tab positions occur every *tabsize* characters\n (default is 8, giving tab positions at columns 0, 8, 16 and so on).\n To expand the string, the current column is set to zero and the\n string is examined character by character. If the character is a\n tab (``\\t``), one or more space characters are inserted in the\n result until the current column is equal to the next tab position.\n (The tab character itself is not copied.) If the character is a\n newline (``\\n``) or return (``\\r``), it is copied and the current\n column is reset to zero. Any other character is copied unchanged\n and the current column is incremented by one regardless of how the\n character is represented when printed.\n\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs()\n \'01 012 0123 01234\'\n >>> \'01\\t012\\t0123\\t01234\'.expandtabs(4)\n \'01 012 0123 01234\'\n\nstr.find(sub[, start[, end]])\n\n Return the lowest index in the string where substring *sub* is\n found, such that *sub* is contained in the slice ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` if *sub* is not found.\n\n Note: The ``find()`` method should be used only if you need to know the\n position of *sub*. To check if *sub* is a substring or not, use\n the ``in`` operator:\n\n >>> \'Py\' in \'Python\'\n True\n\nstr.format(*args, **kwargs)\n\n Perform a string formatting operation. The string on which this\n method is called can contain literal text or replacement fields\n delimited by braces ``{}``. Each replacement field contains either\n the numeric index of a positional argument, or the name of a\n keyword argument. Returns a copy of the string where each\n replacement field is replaced with the string value of the\n corresponding argument.\n\n >>> "The sum of 1 + 2 is {0}".format(1+2)\n \'The sum of 1 + 2 is 3\'\n\n See *Format String Syntax* for a description of the various\n formatting options that can be specified in format strings.\n\n This method of string formatting is the new standard in Python 3,\n and should be preferred to the ``%`` formatting described in\n *String Formatting Operations* in new code.\n\n New in version 2.6.\n\nstr.index(sub[, start[, end]])\n\n Like ``find()``, but raise ``ValueError`` when the substring is not\n found.\n\nstr.isalnum()\n\n Return true if all characters in the string are alphanumeric and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isalpha()\n\n Return true if all characters in the string are alphabetic and\n there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isdigit()\n\n Return true if all characters in the string are digits and there is\n at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.islower()\n\n Return true if all cased characters [4] in the string are lowercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isspace()\n\n Return true if there are only whitespace characters in the string\n and there is at least one character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.istitle()\n\n Return true if the string is a titlecased string and there is at\n least one character, for example uppercase characters may only\n follow uncased characters and lowercase characters only cased ones.\n Return false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.isupper()\n\n Return true if all cased characters [4] in the string are uppercase\n and there is at least one cased character, false otherwise.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.join(iterable)\n\n Return a string which is the concatenation of the strings in the\n *iterable* *iterable*. The separator between elements is the\n string providing this method.\n\nstr.ljust(width[, fillchar])\n\n Return the string left justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.lower()\n\n Return a copy of the string with all the cased characters [4]\n converted to lowercase.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.lstrip([chars])\n\n Return a copy of the string with leading characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a prefix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.lstrip()\n \'spacious \'\n >>> \'www.example.com\'.lstrip(\'cmowz.\')\n \'example.com\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.partition(sep)\n\n Split the string at the first occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing the string itself, followed by\n two empty strings.\n\n New in version 2.5.\n\nstr.replace(old, new[, count])\n\n Return a copy of the string with all occurrences of substring *old*\n replaced by *new*. If the optional argument *count* is given, only\n the first *count* occurrences are replaced.\n\nstr.rfind(sub[, start[, end]])\n\n Return the highest index in the string where substring *sub* is\n found, such that *sub* is contained within ``s[start:end]``.\n Optional arguments *start* and *end* are interpreted as in slice\n notation. Return ``-1`` on failure.\n\nstr.rindex(sub[, start[, end]])\n\n Like ``rfind()`` but raises ``ValueError`` when the substring *sub*\n is not found.\n\nstr.rjust(width[, fillchar])\n\n Return the string right justified in a string of length *width*.\n Padding is done using the specified *fillchar* (default is a\n space). The original string is returned if *width* is less than or\n equal to ``len(s)``.\n\n Changed in version 2.4: Support for the *fillchar* argument.\n\nstr.rpartition(sep)\n\n Split the string at the last occurrence of *sep*, and return a\n 3-tuple containing the part before the separator, the separator\n itself, and the part after the separator. If the separator is not\n found, return a 3-tuple containing two empty strings, followed by\n the string itself.\n\n New in version 2.5.\n\nstr.rsplit([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit* splits\n are done, the *rightmost* ones. If *sep* is not specified or\n ``None``, any whitespace string is a separator. Except for\n splitting from the right, ``rsplit()`` behaves like ``split()``\n which is described in detail below.\n\n New in version 2.4.\n\nstr.rstrip([chars])\n\n Return a copy of the string with trailing characters removed. The\n *chars* argument is a string specifying the set of characters to be\n removed. If omitted or ``None``, the *chars* argument defaults to\n removing whitespace. The *chars* argument is not a suffix; rather,\n all combinations of its values are stripped:\n\n >>> \' spacious \'.rstrip()\n \' spacious\'\n >>> \'mississippi\'.rstrip(\'ipz\')\n \'mississ\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.split([sep[, maxsplit]])\n\n Return a list of the words in the string, using *sep* as the\n delimiter string. If *maxsplit* is given, at most *maxsplit*\n splits are done (thus, the list will have at most ``maxsplit+1``\n elements). If *maxsplit* is not specified or ``-1``, then there is\n no limit on the number of splits (all possible splits are made).\n\n If *sep* is given, consecutive delimiters are not grouped together\n and are deemed to delimit empty strings (for example,\n ``\'1,,2\'.split(\',\')`` returns ``[\'1\', \'\', \'2\']``). The *sep*\n argument may consist of multiple characters (for example,\n ``\'1<>2<>3\'.split(\'<>\')`` returns ``[\'1\', \'2\', \'3\']``). Splitting\n an empty string with a specified separator returns ``[\'\']``.\n\n If *sep* is not specified or is ``None``, a different splitting\n algorithm is applied: runs of consecutive whitespace are regarded\n as a single separator, and the result will contain no empty strings\n at the start or end if the string has leading or trailing\n whitespace. Consequently, splitting an empty string or a string\n consisting of just whitespace with a ``None`` separator returns\n ``[]``.\n\n For example, ``\' 1 2 3 \'.split()`` returns ``[\'1\', \'2\', \'3\']``,\n and ``\' 1 2 3 \'.split(None, 1)`` returns ``[\'1\', \'2 3 \']``.\n\nstr.splitlines([keepends])\n\n Return a list of the lines in the string, breaking at line\n boundaries. This method uses the *universal newlines* approach to\n splitting lines. Line breaks are not included in the resulting list\n unless *keepends* is given and true.\n\n For example, ``\'ab c\\n\\nde fg\\rkl\\r\\n\'.splitlines()`` returns\n ``[\'ab c\', \'\', \'de fg\', \'kl\']``, while the same call with\n ``splitlines(True)`` returns ``[\'ab c\\n\', \'\\n\', \'de fg\\r\',\n \'kl\\r\\n\']``.\n\n Unlike ``split()`` when a delimiter string *sep* is given, this\n method returns an empty list for the empty string, and a terminal\n line break does not result in an extra line.\n\nstr.startswith(prefix[, start[, end]])\n\n Return ``True`` if string starts with the *prefix*, otherwise\n return ``False``. *prefix* can also be a tuple of prefixes to look\n for. With optional *start*, test string beginning at that\n position. With optional *end*, stop comparing string at that\n position.\n\n Changed in version 2.5: Accept tuples as *prefix*.\n\nstr.strip([chars])\n\n Return a copy of the string with the leading and trailing\n characters removed. The *chars* argument is a string specifying the\n set of characters to be removed. If omitted or ``None``, the\n *chars* argument defaults to removing whitespace. The *chars*\n argument is not a prefix or suffix; rather, all combinations of its\n values are stripped:\n\n >>> \' spacious \'.strip()\n \'spacious\'\n >>> \'www.example.com\'.strip(\'cmowz.\')\n \'example\'\n\n Changed in version 2.2.2: Support for the *chars* argument.\n\nstr.swapcase()\n\n Return a copy of the string with uppercase characters converted to\n lowercase and vice versa.\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.title()\n\n Return a titlecased version of the string where words start with an\n uppercase character and the remaining characters are lowercase.\n\n The algorithm uses a simple language-independent definition of a\n word as groups of consecutive letters. The definition works in\n many contexts but it means that apostrophes in contractions and\n possessives form word boundaries, which may not be the desired\n result:\n\n >>> "they\'re bill\'s friends from the UK".title()\n "They\'Re Bill\'S Friends From The Uk"\n\n A workaround for apostrophes can be constructed using regular\n expressions:\n\n >>> import re\n >>> def titlecase(s):\n ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n ... lambda mo: mo.group(0)[0].upper() +\n ... mo.group(0)[1:].lower(),\n ... s)\n ...\n >>> titlecase("they\'re bill\'s friends.")\n "They\'re Bill\'s Friends."\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.translate(table[, deletechars])\n\n Return a copy of the string where all characters occurring in the\n optional argument *deletechars* are removed, and the remaining\n characters have been mapped through the given translation table,\n which must be a string of length 256.\n\n You can use the ``maketrans()`` helper function in the ``string``\n module to create a translation table. For string objects, set the\n *table* argument to ``None`` for translations that only delete\n characters:\n\n >>> \'read this short text\'.translate(None, \'aeiou\')\n \'rd ths shrt txt\'\n\n New in version 2.6: Support for a ``None`` *table* argument.\n\n For Unicode objects, the ``translate()`` method does not accept the\n optional *deletechars* argument. Instead, it returns a copy of the\n *s* where all characters have been mapped through the given\n translation table which must be a mapping of Unicode ordinals to\n Unicode ordinals, Unicode strings or ``None``. Unmapped characters\n are left untouched. Characters mapped to ``None`` are deleted.\n Note, a more flexible approach is to create a custom character\n mapping codec using the ``codecs`` module (see ``encodings.cp1251``\n for an example).\n\nstr.upper()\n\n Return a copy of the string with all the cased characters [4]\n converted to uppercase. Note that ``str.upper().isupper()`` might\n be ``False`` if ``s`` contains uncased characters or if the Unicode\n category of the resulting character(s) is not "Lu" (Letter,\n uppercase), but e.g. "Lt" (Letter, titlecase).\n\n For 8-bit strings, this method is locale-dependent.\n\nstr.zfill(width)\n\n Return the numeric string left filled with zeros in a string of\n length *width*. A sign prefix is handled correctly. The original\n string is returned if *width* is less than or equal to ``len(s)``.\n\n New in version 2.2.2.\n\nThe following methods are present only on unicode objects:\n\nunicode.isnumeric()\n\n Return ``True`` if there are only numeric characters in S,\n ``False`` otherwise. Numeric characters include digit characters,\n and all characters that have the Unicode numeric value property,\n e.g. U+2155, VULGAR FRACTION ONE FIFTH.\n\nunicode.isdecimal()\n\n Return ``True`` if there are only decimal characters in S,\n ``False`` otherwise. Decimal characters include digit characters,\n and all characters that can be used to form decimal-radix numbers,\n e.g. U+0660, ARABIC-INDIC DIGIT ZERO.\n\n\nString Formatting Operations\n============================\n\nString and Unicode objects have one unique built-in operation: the\n``%`` operator (modulo). This is also known as the string\n*formatting* or *interpolation* operator. Given ``format % values``\n(where *format* is a string or Unicode object), ``%`` conversion\nspecifications in *format* are replaced with zero or more elements of\n*values*. The effect is similar to the using ``sprintf()`` in the C\nlanguage. If *format* is a Unicode object, or if any of the objects\nbeing converted using the ``%s`` conversion are Unicode objects, the\nresult will also be a Unicode object.\n\nIf *format* requires a single argument, *values* may be a single non-\ntuple object. [5] Otherwise, *values* must be a tuple with exactly\nthe number of items specified by the format string, or a single\nmapping object (for example, a dictionary).\n\nA conversion specifier contains two or more characters and has the\nfollowing components, which must occur in this order:\n\n1. The ``\'%\'`` character, which marks the start of the specifier.\n\n2. Mapping key (optional), consisting of a parenthesised sequence of\n characters (for example, ``(somename)``).\n\n3. Conversion flags (optional), which affect the result of some\n conversion types.\n\n4. Minimum field width (optional). If specified as an ``\'*\'``\n (asterisk), the actual width is read from the next element of the\n tuple in *values*, and the object to convert comes after the\n minimum field width and optional precision.\n\n5. Precision (optional), given as a ``\'.\'`` (dot) followed by the\n precision. If specified as ``\'*\'`` (an asterisk), the actual width\n is read from the next element of the tuple in *values*, and the\n value to convert comes after the precision.\n\n6. Length modifier (optional).\n\n7. Conversion type.\n\nWhen the right argument is a dictionary (or other mapping type), then\nthe formats in the string *must* include a parenthesised mapping key\ninto that dictionary inserted immediately after the ``\'%\'`` character.\nThe mapping key selects the value to be formatted from the mapping.\nFor example:\n\n>>> print \'%(language)s has %(number)03d quote types.\' % \\\n... {"language": "Python", "number": 2}\nPython has 002 quote types.\n\nIn this case no ``*`` specifiers may occur in a format (since they\nrequire a sequential parameter list).\n\nThe conversion flag characters are:\n\n+-----------+-----------------------------------------------------------------------+\n| Flag | Meaning |\n+===========+=======================================================================+\n| ``\'#\'`` | The value conversion will use the "alternate form" (where defined |\n| | below). |\n+-----------+-----------------------------------------------------------------------+\n| ``\'0\'`` | The conversion will be zero padded for numeric values. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'-\'`` | The converted value is left adjusted (overrides the ``\'0\'`` |\n| | conversion if both are given). |\n+-----------+-----------------------------------------------------------------------+\n| ``\' \'`` | (a space) A blank should be left before a positive number (or empty |\n| | string) produced by a signed conversion. |\n+-----------+-----------------------------------------------------------------------+\n| ``\'+\'`` | A sign character (``\'+\'`` or ``\'-\'``) will precede the conversion |\n| | (overrides a "space" flag). |\n+-----------+-----------------------------------------------------------------------+\n\nA length modifier (``h``, ``l``, or ``L``) may be present, but is\nignored as it is not necessary for Python -- so e.g. ``%ld`` is\nidentical to ``%d``.\n\nThe conversion types are:\n\n+--------------+-------------------------------------------------------+---------+\n| Conversion | Meaning | Notes |\n+==============+=======================================================+=========+\n| ``\'d\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'i\'`` | Signed integer decimal. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'o\'`` | Signed octal value. | (1) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'u\'`` | Obsolete type -- it is identical to ``\'d\'``. | (7) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'x\'`` | Signed hexadecimal (lowercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'X\'`` | Signed hexadecimal (uppercase). | (2) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'e\'`` | Floating point exponential format (lowercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'E\'`` | Floating point exponential format (uppercase). | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'f\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'F\'`` | Floating point decimal format. | (3) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'g\'`` | Floating point format. Uses lowercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'G\'`` | Floating point format. Uses uppercase exponential | (4) |\n| | format if exponent is less than -4 or not less than | |\n| | precision, decimal format otherwise. | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'c\'`` | Single character (accepts integer or single character | |\n| | string). | |\n+--------------+-------------------------------------------------------+---------+\n| ``\'r\'`` | String (converts any Python object using *repr()*). | (5) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'s\'`` | String (converts any Python object using ``str()``). | (6) |\n+--------------+-------------------------------------------------------+---------+\n| ``\'%\'`` | No argument is converted, results in a ``\'%\'`` | |\n| | character in the result. | |\n+--------------+-------------------------------------------------------+---------+\n\nNotes:\n\n1. The alternate form causes a leading zero (``\'0\'``) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n2. The alternate form causes a leading ``\'0x\'`` or ``\'0X\'`` (depending\n on whether the ``\'x\'`` or ``\'X\'`` format was used) to be inserted\n between left-hand padding and the formatting of the number if the\n leading character of the result is not already a zero.\n\n3. The alternate form causes the result to always contain a decimal\n point, even if no digits follow it.\n\n The precision determines the number of digits after the decimal\n point and defaults to 6.\n\n4. The alternate form causes the result to always contain a decimal\n point, and trailing zeroes are not removed as they would otherwise\n be.\n\n The precision determines the number of significant digits before\n and after the decimal point and defaults to 6.\n\n5. The ``%r`` conversion was added in Python 2.0.\n\n The precision determines the maximal number of characters used.\n\n6. If the object or format provided is a ``unicode`` string, the\n resulting string will also be ``unicode``.\n\n The precision determines the maximal number of characters used.\n\n7. See **PEP 237**.\n\nSince Python strings have an explicit length, ``%s`` conversions do\nnot assume that ``\'\\0\'`` is the end of the string.\n\nChanged in version 2.7: ``%f`` conversions for numbers whose absolute\nvalue is over 1e50 are no longer replaced by ``%g`` conversions.\n\nAdditional string operations are defined in standard modules\n``string`` and ``re``.\n\n\nXRange Type\n===========\n\nThe ``xrange`` type is an immutable sequence which is commonly used\nfor looping. The advantage of the ``xrange`` type is that an\n``xrange`` object will always take the same amount of memory, no\nmatter the size of the range it represents. There are no consistent\nperformance advantages.\n\nXRange objects have very little behavior: they only support indexing,\niteration, and the ``len()`` function.\n\n\nMutable Sequence Types\n======================\n\nList and ``bytearray`` objects support additional operations that\nallow in-place modification of the object. Other mutable sequence\ntypes (when added to the language) should also support these\noperations. Strings and tuples are immutable sequence types: such\nobjects cannot be modified once created. The following operations are\ndefined on mutable sequence types (where *x* is an arbitrary object):\n\n+--------------------------------+----------------------------------+-----------------------+\n| Operation | Result | Notes |\n+================================+==================================+=======================+\n| ``s[i] = x`` | item *i* of *s* is replaced by | |\n| | *x* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j] = t`` | slice of *s* from *i* to *j* is | |\n| | replaced by the contents of the | |\n| | iterable *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j]`` | same as ``s[i:j] = []`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s[i:j:k] = t`` | the elements of ``s[i:j:k]`` are | (1) |\n| | replaced by those of *t* | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``del s[i:j:k]`` | removes the elements of | |\n| | ``s[i:j:k]`` from the list | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.append(x)`` | same as ``s[len(s):len(s)] = | (2) |\n| | [x]`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.extend(x)`` | same as ``s[len(s):len(s)] = x`` | (3) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.count(x)`` | return number of *i*\'s for which | |\n| | ``s[i] == x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.index(x[, i[, j]])`` | return smallest *k* such that | (4) |\n| | ``s[k] == x`` and ``i <= k < j`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.insert(i, x)`` | same as ``s[i:i] = [x]`` | (5) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.pop([i])`` | same as ``x = s[i]; del s[i]; | (6) |\n| | return x`` | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.remove(x)`` | same as ``del s[s.index(x)]`` | (4) |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.reverse()`` | reverses the items of *s* in | (7) |\n| | place | |\n+--------------------------------+----------------------------------+-----------------------+\n| ``s.sort([cmp[, key[, | sort the items of *s* in place | (7)(8)(9)(10) |\n| reverse]]])`` | | |\n+--------------------------------+----------------------------------+-----------------------+\n\nNotes:\n\n1. *t* must have the same length as the slice it is replacing.\n\n2. The C implementation of Python has historically accepted multiple\n parameters and implicitly joined them into a tuple; this no longer\n works in Python 2.0. Use of this misfeature has been deprecated\n since Python 1.4.\n\n3. *x* can be any iterable object.\n\n4. Raises ``ValueError`` when *x* is not found in *s*. When a negative\n index is passed as the second or third parameter to the ``index()``\n method, the list length is added, as for slice indices. If it is\n still negative, it is truncated to zero, as for slice indices.\n\n Changed in version 2.3: Previously, ``index()`` didn\'t have\n arguments for specifying start and stop positions.\n\n5. When a negative index is passed as the first parameter to the\n ``insert()`` method, the list length is added, as for slice\n indices. If it is still negative, it is truncated to zero, as for\n slice indices.\n\n Changed in version 2.3: Previously, all negative indices were\n truncated to zero.\n\n6. The ``pop()`` method is only supported by the list and array types.\n The optional argument *i* defaults to ``-1``, so that by default\n the last item is removed and returned.\n\n7. The ``sort()`` and ``reverse()`` methods modify the list in place\n for economy of space when sorting or reversing a large list. To\n remind you that they operate by side effect, they don\'t return the\n sorted or reversed list.\n\n8. The ``sort()`` method takes optional arguments for controlling the\n comparisons.\n\n *cmp* specifies a custom comparison function of two arguments (list\n items) which should return a negative, zero or positive number\n depending on whether the first argument is considered smaller than,\n equal to, or larger than the second argument: ``cmp=lambda x,y:\n cmp(x.lower(), y.lower())``. The default value is ``None``.\n\n *key* specifies a function of one argument that is used to extract\n a comparison key from each list element: ``key=str.lower``. The\n default value is ``None``.\n\n *reverse* is a boolean value. If set to ``True``, then the list\n elements are sorted as if each comparison were reversed.\n\n In general, the *key* and *reverse* conversion processes are much\n faster than specifying an equivalent *cmp* function. This is\n because *cmp* is called multiple times for each list element while\n *key* and *reverse* touch each element only once. Use\n ``functools.cmp_to_key()`` to convert an old-style *cmp* function\n to a *key* function.\n\n Changed in version 2.3: Support for ``None`` as an equivalent to\n omitting *cmp* was added.\n\n Changed in version 2.4: Support for *key* and *reverse* was added.\n\n9. Starting with Python 2.3, the ``sort()`` method is guaranteed to be\n stable. A sort is stable if it guarantees not to change the\n relative order of elements that compare equal --- this is helpful\n for sorting in multiple passes (for example, sort by department,\n then by salary grade).\n\n10. **CPython implementation detail:** While a list is being sorted,\n the effect of attempting to mutate, or even inspect, the list is\n undefined. The C implementation of Python 2.3 and newer makes the\n list appear empty for the duration, and raises ``ValueError`` if\n it can detect that the list has been mutated during a sort.\n',
/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/
H A Daarch64-linux-android-gcc-4.9.x3910 All options with the desired characteristics have already been displayedThe following options are not documenteddebug format "%s" conflicts with prior selectionunrecognised debug output level "%s"debug output level %s is too highargument %qs to %<-femit-struct-debug-detailed%> unknown%<-femit-struct-debug-detailed=dir:...%> must allow at least as much as %<-femit-struct-debug-detailed=ind:...%>argument %qs to %<-femit-struct-debug-detailed%> not recognizedargument to %<-O%> should be a non-negative integer, %<g%>, %<s%> or %<fast%>section anchors must be disabled when unit-at-a-time is disabledtoplevel reorder must be disabled when unit-at-a-time is disabledtransactional memory is not supported with non-call exceptionssection anchors must be disabled when toplevel reorder is disabled-freorder-blocks-and-partition does not work with exceptions on this architecture-freorder-blocks-and-partition does not support unwind info on this architecture-freorder-blocks-and-partition does not work on this architecture-fno-fat-lto-objects are supported only with linker pluginonly one -flto-partition value can be specified%<-fsplit-stack%> is not supported by this compiler configurationDebug generation via -g option disabled under -fripa -fprofile-generate (use -fripa-allow-debug to override)-fsanitize=address is incompatible with -fsanitize=kernel-address-fsanitize=address and -fsanitize=kernel-address are incompatible with -fsanitize=thread%s: --param arguments should be of the form NAME=VALUE--help argument %q.*s is ambiguous, please be more specificunrecognized argument to --help= option: %q.*sgetting core file size maximum limit: %msetting core file size limit to maximum: %munrecognized gcc debugging option: %cstructure alignment must be a small power of two, not %dunknown stack check parameter "%s"%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-gdwarf -g%s%> for debug leveldwarf version %d is not supportedunrecognized argument to -fsanitize= option: %q.*s/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/opts-common.ccommand line option %qs is not supported by this configurationargument to %qs should be a non-negative integerunrecognized argument in option %qsvalid arguments to %qs are: %s--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters--print-missing-file-dependencies--print-sysroot-headers-suffix-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>Do not discard comments in macro expansions-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1-F <dir> Add <dir> to the end of the main framework include pathPrint the name of header files as they are used-I <dir> Add <dir> to the end of the main include path-J<directory> Put MODULE files in 'directory'Generate make dependencies and compile-MF <file> Write dependency output to the given fileTreat missing header files as generated filesLike -M but ignore system header filesLike -MD but ignore system header filesGenerate phony targets for all headers-MQ <target> Add a MAKE-quoted targetmissing makefile target after %qs-MT <target> Add an unquoted target-O<number> Set optimization level to <number>Optimize for speed disregarding exact standards complianceOptimize for debugging experience rather than speed or sizeOptimize for space rather than speedDo not generate #line directivesThis switch is deprecated; use -Wextra insteadWarn about things that will change when compiling with an ABI-compliant compilerWarn if a subobject has an abi_tag attribute that the complete object type does not haveWarn about suspicious uses of memory addressesWarn about returning structures, unions or arrays-Waggressive-loop-optimizationsWarn if a loop with constant number of iterations triggers undefined behaviorWarn about possible aliasing of dummy argumentsWarn about alignment of COMMON blocksWarn about missing ampersand in continued character constantsWarn if an array is accessed out of boundsWarn about creation of array temporariesWarn whenever an Objective-C assignment is being intercepted by the garbage collectorWarn about inappropriate attribute usageWarn about casting functions to incompatible typesWarn when a built-in preprocessor macro is undefined or redefinedWarn about C constructs that are not in the common subset of C and C++Deprecated in favor of -Wc++11-compatWarn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011Warn if the type of a variable might be not interoperable with CWarn about pointer casts which increase alignmentWarn about casts which discard qualifiersWarn about subscripts whose type is "char"Warn about truncated character expressionsWarn about variables that might be changed by "longjmp" or "vfork"Warn about possibly nested block comments, and C++ comments spanning more than one physical lineWarn about equality comparisons involving REAL or COMPLEX expressionsWarn for conditionally-supported constructsWarn for implicit type conversions that may change a valueWarn about most implicit conversionsWarn for converting NULL from/to a non-pointer typeWarn in case profiles in -fprofile-use do not matchWarn when a #warning directive is encounteredWarn when all constructors and destructors are privateWarn about __TIME__, __DATE__ and __TIMESTAMP__ usageWarn when a declaration is found after a statementWarn when deleting a pointer to incomplete typeWarn about deleting polymorphic objects with non-virtual destructorsWarn if a deprecated compiler feature, class, method, or field is usedWarn about uses of __attribute__((deprecated)) declarationsWarn when an optimization pass is disabledWarn about compile-time integer division by zeroWarn about implicit conversions from "float" to "double"Warn about violations of Effective C++ style rulesWarn about an empty body in an if or else statementWarn about stray tokens after #elif and #endifWarn about comparison of different enum types-Werror-implicit-function-declarationThis switch is deprecated; use -Werror=implicit-function-declaration insteadTreat specified warning as errorPrint extra (possibly unwanted) warningsWarn if deprecated empty statements are foundExit on the first error occurredWarn for implicit type conversions that cause loss of floating point precisionWarn if testing floating point numbers for equalityDisable promoting warnings to errorsWarn about printf/scanf/strftime/strfmon format string anomaliesWarn about format strings that contain NUL bytesWarn if passing too many arguments to a function for its format stringWarn about format strings that are not literalsWarn about possible security problems with format functionsWarn about strftime formats yielding 2-digit yearsWarn about zero-length formats-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytesWarn when attempting to free a non-heap objectWarn about function call eliminationWarn whenever type qualifiers are ignored.Warn about implicit declarations-Wimplicit-function-declarationWarn about implicit function declarationsWarn when a declaration does not specify a typeWarn about calls with implicit interfaceWarn about called procedures not explicitly declaredWarn about C++11 inheriting constructors when the base has a variadic constructorWarn about variables which are initialized to themselvesWarn when an inlined function cannot be inlinedWarn when there is a cast to a pointer from an integer of a different sizeWarn if a user-procedure has the same name as an intrinsicWarn on intrinsics not part of the selected standardWarn when an atomic memory model parameter is known to be outside the valid range.Warn about invalid uses of the "offsetof" macroWarn about PCH files that are found but not usedWarn when a jump misses a variable initialization-Wlarger-than=<number> Warn if an object is larger than <number> bytesWarn about truncated source linesWarn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.Warn when a logical operator is suspiciously always evaluating to true or falseDo not warn about using "long long" when -pedanticWarn about suspicious declarations of "main"Warn about maybe uninitialized automatic variablesWarn about possibly missing braces around initializersWarn about global functions without previous declarationsWarn about missing fields in struct initializersWarn about user-specified include directories that do not existWarn about function parameters declared without a type specifier in K&R-style functionsWarn about global functions without prototypesswitch %qs is no longer supportedWarn about use of multi-character character constantsWarn about narrowing conversions within { } that are ill-formed in C++11Warn about "extern" declarations not at file scopeWarn when a noexcept expression evaluates to false even though the expression can't actually throwWarn when non-templatized friend functions are declared within a templateWarn about non-virtual destructorsWarn about NULL being passed to argument slots marked as requiring non-NULL-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode stringsWarn if a C-style cast is used in a programWarn for obsolescent usage in a declarationWarn if an old-style parameter definition is usedWarn if a simd directive is overridden by the vectorizer cost modelWarn if .class files are out of dateWarn about overflow in arithmetic expressionsWarn if a string is longer than the maximum portable length specified by the standardWarn about overloaded virtual function namesWarn about overriding initializers without side effectsWarn when the packed attribute has no effect on struct layoutWarn about packed bit-fields whose offset changed in GCC 4.4Warn when padding is required to align structure membersWarn about possibly missing parenthesesIssue warnings needed for strict compliance to the standardWarn when converting the type of pointers to member functionsWarn about function pointer arithmeticWarn when a pointer differs in signedness in an assignmentWarn when a pointer is cast to an integer of a different sizeWarn for -I and -L options using system directories if cross compilingWarn if a property for an Objective-C object has no assign semantics specifiedWarn if inherited methods are unimplementedWarn about real-literal-constants with 'q' exponent-letterWarn when a left-hand-side array variable is reallocatedWarn when a left-hand-side variable is reallocatedWarn about multiple declarations of the same objectWarn if modifiers are specified when not necessaryWarn when the compiler reorders codeWarn about returning a pointer/reference to a local or temporary variable.Warn whenever a function's return type defaults to "int" (C), or about inconsistent return types (C++)Warn if primary and auxiliary modules have mismatched command line optionsWarn if a selector has multiple methodsWarn when a variable is assigned to itselfWarn when a variable of a non-POD type is assigned to itselfWarn about possible violations of sequence point rulesWarn when one local variable shadows anotherWarn when one local variable shadows another local variable or parameter of compatible typeWarn when one local variable shadows another local variable or parameterWarn about signed-unsigned comparisonsWarn for implicit type conversions between signed and unsigned integersWarn when overload promotes from unsigned to signedWarn when not issuing stack smashing protection for some reasonWarn if stack usage might be larger than specified amountWarn about code which might break strict aliasing rulesWarn about uncasted NULL used as sentinelWarn about optimizations that assume that signed overflow is undefinedWarn about unprototyped function declarationsWarn if type signatures of candidate methods do not match exactlyWarn about functions which might be candidates for __attribute__((const))Warn about functions which might be candidates for format attributesWarn about functions which might be candidates for __attribute__((noreturn))Warn about functions which might be candidates for __attribute__((pure))Warn about "suspicious" constructsWarn about enumerated switches, with no default, missing a caseWarn about enumerated switches missing a "default:" statementWarn about all enumerated switches missing a specific caseWarn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are usedDeprecated. This switch has no effectDo not suppress warnings from system headersPermit nonconforming uses of the tab characterWarn if the pointer in a pointer assignment might outlive its target-Wthread-mismatched-lock-acq-relWarn about mismatched lock acquisition and release-Wthread-mismatched-lock-orderWarn about lock acquisition order inconsistent with what specified in the attributesWarn about a lock being acquired recursivelyWarn about potential thread safety issues when the code is annotated with thread safety attributesDoes nothing. For compatibility with clang thread safety analysis.Warn about function calls not properly protected by locks specified in the attributesWarn about shared variables not properly protected by locks specified in the attributes-Wthread-unsupported-lock-nameWarn about uses of unsupported lock names in attributesWarn about features not present in traditional CWarn of prototypes causing type conversions different from what would happen in the absence of prototypeWarn whenever a trampoline is generatedWarn if trigraphs are encountered that might affect the meaning of the programWarn if a comparison is always true or always false due to the limited range of the data typeWarn about @selector()s without previously declared methodsWarn if an undefined macro is used in an #if directiveWarn about underflow of numerical constant expressionsWarn about uninitialized automatic variablesWarn about unrecognized pragmasDoes nothing. Preserved for backward compatibility.Warn if the loop cannot be optimized due to nontrivial assumptions.Warn about unsuffixed float constantsWarn when a function parameter is only set, otherwise unusedWarn when a variable is only set, otherwise unusedWarn about unused dummy arguments.Warn when a function is unusedWarn when typedefs locally defined in a function are not usedWarn about macros defined in the main file that are not usedWarn when a function parameter is unusedWarn if a caller of a function, marked with attribute warn_unused_result, does not use its return valueWarn when an expression value is unusedWarn when a variable is unusedWarn about questionable usage of the macros used to retrieve variable argumentsWarn about using variadic macros-Wvector-operation-performanceWarn when a vector operation is compiled outside the SIMDWarn if a virtual base has a non-trivial move assignment operatorWarn if a variable length array is usedWarn when a register variable is declared volatileIn C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.-Wzero-as-null-pointer-constantWarn when a literal '0' is used as null pointerA synonym for -std=c89 (for C) or -std=c++98 (for C++)-aux-info <file> Emit declaration information into <file>-d<letters> Enable dumps from specific passes of the compiler-dumpbase <file> Set the file basename to be used for dumps-dumpdir <dir> Set the directory name to be used for dumps--CLASSPATH Deprecated; use --classpath insteadGenerate position-independent code if possible (large mode)Generate position-independent code for executables if possible (large mode)Enforce class member access control semantics-fada-spec-parent=unit Dump Ada specs as child units of given parent-faggressive-function-eliminationEliminate multiple function invokations also for impure functions-faggressive-loop-optimizationsAggressively optimize loops using language constraintsEnable alignment of COMMON blocksAlign labels which are only reached by jumpingAll intrinsics procedures are available regardless of selected standard-fallow-parameterless-variadic-functionsAllow variadic functions without named parameterPermit the use of the assert keywordAllow optimization for floating-point arithmetic which may change the result of the operation due to rounding.Generate unwind tables that are exact at each instruction boundaryGenerate auto-inc/dec instructionsUse sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'.Whether to assume the sample profile is accurate.-fauto-profile-record-coverage-in-elfWhether to record annotation coverage info in elf.Use sample profile information for call graph node weights. The profile file is specified in the argument.Do not treat local variables and COMMON blocks as if they were named in SAVE statementsSpecify that backslash in string introduces an escape characterProduce a backtrace when a runtime error is encountered-fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS--bootclasspath=<path> Replace system pathGenerated should be loaded by bootstrap loaderGenerate code to check bounds before indexing arraysReplace add, compare, branch with branch on count registerUse profiling information for branch probabilitiesPerform branch target load optimization before prologue / epilogue threading-fbranch-target-load-optimize2Perform branch target load optimization after prologue / epilogue threadingRestrict target load migration not to re-use registers in any basic block-fcall-saved-<register> Mark <register> as being preserved across functions-fcall-used-<register> Mark <register> as being corrupted by function callsSave registers around function callsWhere shorter, use canonicalized paths to systems headers.Produce a warning at runtime if a array temporary has been created for a procedure argumentCompare branch prediction result and autofdo profile information, store the result in a section in the generated elf file.-fcheck-branch-annotation-threshold=The number of executions a basic block needs to reach before GCC dumps its branch prediction information with -fcheck-branch-annotation.Compare the results of several data dependence analyzers.Check the return value of new in C++Generate checks for references to NULL-fcheck=[...] Specify which runtime checks are to be performed--classpath=<path> Set class path-fcoarray=[...] Specify which coarray parallelization should be usedLooks for opportunities to reduce stack adjustments and stack references.Do not put uninitialized globals in the common sectionRun only the second compilation of -fcompare-debug-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dumpPerform comparison elimination after register allocation has finishedAllow the arguments of the '?' operator to have different typesDoes nothing. Preserved for backward compatibility.Do not perform optimizations increasing noticeably stack usage-fconst-string-class=<name> Use class <name> for constant stringsno class name specified with %qs-fconstexpr-depth=<number> Specify maximum constexpr recursion depthUse big-endian format for unformatted filesUse little-endian format for unformatted filesUse native format for unformatted filesSwap endianness for unformatted filesPerform a register copy-propagation optimization passUse the Cray Pointer extensionPerform cross-jumping optimizationWhen running CSE, follow jumps to their targetsComplex multiplication and division follow Fortran rulesOmit range reduction step when performing complex divisionIgnore 'D' in column one in fixed formTreat lines with 'D' in column one as commentsPlace data items into their own sectionList all available debugging counters with their limits and counts.-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. Use the RTL dead code elimination passEmit debug annotations during preprocessingMap one directory name to another in debug informationOutput .debug_types section when using DWARF v4 debuginfo.Factor complex constructors and destructors to favor space over speed-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-listSet the default double precision kind to an 8 byte wide typeSet the default integer kind to an 8 byte wide typeMake functions no-throw/noexcept by defaultSet the default real kind to an 8 byte wide typeDefer popping functions args from stack until laterAttempt to fill delay slots of branch instructionsDelete dead instructions that may throw exceptionsDelete useless null pointer checksTry to convert virtual calls to direct ones.Perform speculative devirtualization-fdiagnostics-color=[never|always|auto] Colorize diagnosticsShow the source line with a caret indicating the column-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnosticsAmend appropriate diagnostic messages with the command line option that controls them-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization passAllow dollar signs in entity namesPermit '$' as an identifier characterUse the RTL dead store elimination pass-fdump-<type> Dump various compiler internals to a fileWrite all declarations as Ada code transitivelyWrite all declarations as Ada code for the given file only-fdump-final-insns=filename Dump to filename the insns at the end of translationDisplay the code tree after front end optimizationDisplay the code tree after parsing-fdump-go-spec=filename Write all declarations to file as Go codeSuppress output of addresses in debugging dumpsDisplay the code tree after parsing; deprecated optionSuppress output of instruction numbers, line number notes and addresses in debugging dumpsSuppress output of previous and next insn numbers in debugging dumpsEnable CFI tables via GAS assembler directives.Perform DWARF2 duplicate elimination-feliminate-unused-debug-symbolsPerform unused type elimination in debug info-feliminate-unused-debug-typesDo not suppress C++ class debug information.Print to stderr the mapping from module name and function id to assembler function name when -ftest-coverage, -fprofile-generate or -fprofile-use are active, for use in correlating function ids in gcda files with the function name.-femit-struct-debug-baseonly Aggressive reduced debug info for structs-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs-femit-struct-debug-reduced Conservative reduced debug info for structs-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass--encoding=<encoding> Choose input encoding (defaults from your locale)Generate code to check exception specifications-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision-fexec-charset=<cset> Convert all strings and character constants to character set <cset>Perform a number of minor, expensive optimizationsInterpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal.--extdirs=<path> Set the extension directory pathPermit universal character names (\u and \U) in identifiersSupport dynamic initialization of thread-local variables in a different translation unitSpecify that an external BLAS library should be used for matmul calls on large-size arraysOutput lto objects containing both the intermediate language and binary output.Input file is a file with a list of filenames to compileAssume no NaNs or infinities are generated-ffixed-<register> Mark <register> as being unavailable to the compilerAssume that the source file is fixed form-ffixed-line-length-<n> Use n as character line width in fixed modeAllow arbitrary character line width in fixed modeDon't allocate floats and doubles in extended-precision registersScope of for-init-statement variables is local to the loopAlways check for non gcj generated classes archivesPerform a forward propagation pass on RTL-ffp-contract=[off|on|fast] Perform floating-point expression contraction.-ffpe-summary=[...] Print summary of floating point exceptions-ffpe-trap=[...] Stop on following floating point exceptionsAssume that the source file is free form-ffree-line-length-<n> Use n as character line width in free modeAllow arbitrary character line width in free modeDo not assume that standard C libraries and "main" existInject friend functions into enclosing namespace-ffunction-attribute-list=attribute:name,... Add attribute to named functionsAllow function addresses to be held in registersPlace each function into its own sectionPerform global common subexpression eliminationPerform global common subexpression elimination after register allocation has finishedPerform redundant load after store elimination in global common subexpression eliminationPerform enhanced load motion during global common subexpression eliminationPerform store motion after global common subexpression eliminationRecognize GNU-defined keywordsGenerate code for GNU runtime environmentEnable support for GNU transactional memoryUse STB_GNU_UNIQUE if supported by the assemblerUse traditional GNU semantics for inline functionsAdd explicit checks for division overflow in INT_MIN / -1Add explicit checks for division by zero-fgo-dump-<type> Dump Go frontend internal information-fgo-optimize-<type> Turn on optimization passes in the frontend-fgo-pkgpath=<string> Set Go package path-fgo-prefix=<string> Set package-specific prefix for exported Go names-fgo-relative-import-path=<path> Treat a relative import as relative to pathEnable in and out of Graphite representationEnable Graphite Identity transformationEnable guessing of branch probabilities-fhandle-exceptions has been renamed -fexceptions (and is now on by default)Assume the runtime uses a hash table to map an object to its synchronization structureEnable hoisting adjacent loads to encourage generating conditional move instructionsAssume normal C execution environmentPerform conversion of conditional jumps to branchless equivalentsPerform conversion of conditional jumps to conditional executionExport functions even if they can be inlinedEmit implicit instantiations of inline templatesSpecify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statementsEmit implicit instantiations of templatesGenerate instances of Class at runtimeUse offset tables for virtual method callsDo not generate .size directives-finit-character=<n> Initialize local character variables to ASCII value n-finit-integer=<n> Initialize local integer variables to nInitialize local variables to zero (from g77)-finit-logical=<true|false> Initialize local logical variables-finit-real=<zero|nan|inf|-inf> Initialize local real variablesEnable inlining of function declared "inline", disabling disables all inliningInline __atomic operations when a lock free instruction sequence is available.Integrate functions not declared "inline" into their callers when profitable-finline-functions-called-onceIntegrate functions only required by their single caller-finline-limit=<number> Limit the size of inlined functions to <number>Integrate functions into their callers when code size is known not to grow-finput-charset=<cset> Specify the default character set for source filesInstrument function entry and exit with profiling calls-finstrument-functions-exclude-file-list=-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files-finstrument-functions-exclude-function-list=-finstrument-functions-exclude-function-list=name,... Do not instrument listed functionsInterpret any INTEGER(4) as an INTEGER(8)Specify where to find the compiled intrinsic modulesPerform interprocedural constant propagationPerform cloning to make Interprocedural constant propagation strongerPerform interprocedural profile propagationPerform interprocedural points-to analysisDiscover pure and const functionsDiscover readonly and non addressable static variablesPerform interprocedural reduction of aggregates-fira-algorithm=[CB|priority] Set the used IRA algorithmUse IRA based register pressure calculation in RTL hoist optimizations.Use IRA based register pressure calculation in RTL loop optimizations.-fira-region=[one|all|mixed] Set regions for IRAShare slots for saving different hard registers.Share stack slots for spilled pseudo-registers.-fira-verbose=<number> Control IRA's level of diagnostic messages.-fisolate-erroneous-paths-attributeDetect paths which trigger erroneous or undefined behaviour due a NULL value being used in a way which is forbidden by a returns_nonnull or nonnull attribute. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap. -fisolate-erroneous-paths-dereferenceDetect paths which trigger erroneous or undefined behaviour due to dereferencing a NULL pointer. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap.Optimize induction variables on treesAssume native functions are implemented using JNIUse jump tables for sufficiently large switch statementsDon't emit dllexported inline functions unless neededGenerate code for functions even if they are fully inlinedEmit static const variables even if they are not usedAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.Give external symbols a leading underscoreTell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes.Relief of register pressure through live range shrinkageEnable Loop Blocking transformationEnable Loop Interchange transformationEnable the ISL based loop nest optimizerEnable Loop Strip Mining transformationEnable link-time optimization.-flto-compression-level=<number> Use zlib compression level <number> for ILPartition symbols and vars at linktime based on object files they originate fromPartition functions and vars at linktime into approximately same sized bucketsPut every symbol into separate partitionDisable partioning and streamingReport various link-time optimization statisticsReport various link-time optimization statistics for WPA onlyLink-time optimization with number of parallel jobs or jobserver.Run the link-time optimizer in local transformation (LTRANS) mode.Specify a file to which a list of files output by LTRANS is written.Set errno after built-in math functions-fmax-array-constructor=<n> Maximum number of objects in an array constructor-fmax-errors=<number> Maximum number of errors to report-fmax-identifier-length=<n> Maximum identifier length-fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack-fmax-subrecord-length=<n> Maximum length for subrecordsReport on permanent memory allocationReport on permanent memory allocation in WPA onlyAttempt to merge identical constants and constant variablesAttempt to merge identical constants across compilation unitsAttempt to merge identical debug strings across compilation units-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrappingSet default accessibility of module entities to PRIVATE.Perform SMS based modulo scheduling before the first scheduling passPerform SMS based modulo scheduling with register moves allowedMove loop invariant computations out of loopsDon't warn about uses of Microsoft extensionsGenerate code for NeXT (Apple Mac OS X) runtime environmentAssume that receivers of Objective-C messages may be nilEnables the unlimited vectorizer cost model. Preserved for backward compatibility.Support synchronous non-call exceptionsTreat a throw() exception specification as noexcept to improve code sizeSpecify which ABI to use for Objective-C family code and meta-data generation.Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if neededAllow fast jumps to the message dispatcherEnable Objective-C exception and synchronization syntaxEnable garbage collection (GC) in Objective-C/Objective-C++ programsEnable inline checks for nil receivers with the NeXT runtime and ABI version 2.Enable Objective-C setjmp exception handling runtimeConform to the Objective-C 1.0 language as implemented in GCC 4.0When possible do not generate stack framesEnable OpenMP (implies -frecursive in Fortran)Enable OpenMP's SIMD directivesRecognize C++ keywords like "compl" and "xor"Enable all optimization info dumps on stderr-fopt-info[-<type>=filename] Dump compiler optimization detailsOptimize sibling and tail recursive calls-foptimize-static-class-initializationEnable optimization of static class initialization codeEnable string length optimizations on treesTry to lay out derived types as compactly as possiblePack structure members together without holes-fpack-struct=<number> Set initial maximum structure member alignmentReturn small aggregates in memory, not registersLook for and use PCH files even when preprocessingLimit non-const non-FP loop peeling under profile estimates of large code footprintEnable machine specific peephole optimizationsEnable an RTL peephole pass before sched2Downgrade conformance errors to warningsGenerate position-independent code if possible (small mode)Generate position-independent code for executables if possible (small mode)Enable Plan 9 language extensionsUse PLT for PIC calls (-fno-plt: load the address from GOT at call site)-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>Report on memory allocation before interprocedural optimizationRun predictive commoning optimization.Generate prefetch instructions, if available, for arrays in loopsTreat the input file as already preprocessed-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the argumentsEnable basic program profiling codeInsert arc-based program profiling codeEnable correction of flow inconsistent profile data inputSet the top-level directory for storing the profile data. The default is 'pwd'.Dump CFG profile for comparison.Enable common options for generating profile info for profile feedback directed optimizationsfprofile-generate-atomic=[0..3] Atomically increments for profile counters.-fprofile-generate-buildinfo=filename Read build info to include in gcda file from filenameTurn on instrumentation sampling with -fprofile-generate with rate set by --param profile-generate-sampling-rate or environment variable GCOV_SAMPLING_RATEEnable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=Enable function reordering that improves code placementReport on consistency of profileSpecify a substring to be stripped from the profile base file nameEnable common options for performing profile feedback directed optimizationsEnable common options for performing profile feedback directed optimizations, and set -fprofile-dir=Insert code to profile values of expressionsProtect parentheses in expressions-frandom-seed=<string> Make compile reproducible using <string>Enable range checking during compilationInterpret any REAL(4) as a REAL(10)Interpret any REAL(4) as a REAL(16)Interpret any REAL(4) as a REAL(8)Interpret any REAL(8) as a REAL(10)Interpret any REAL(8) as a REAL(16)Interpret any REAL(8) as a REAL(4)Reallocate the LHS in assignmentsSame as -fassociative-math for expressions which include division.-frecord-compilation-info-in-elfRecord the compiler optimizations in a .gnu.switches.text section.Record gcc command line switches in the object file.Use a 4-byte record marker for unformatted filesUse an 8-byte record marker for unformatted filesAllocate local variables on the stack to allow indirect recursionReduce the amount of reflection meta-data generatedTurn on Redundant Extensions Elimination pass.Return small aggregates in registersPerform a register renaming optimization passReorder basic blocks to improve code placement-freorder-blocks-and-partitionReorder basic blocks and partition into hot and cold sectionsReorder functions to improve code placement-freorder-functions=[callgraph] Select the scheme for function reordering. This invokes a linker plugin. Generate .gnu.callgraph.text sections listing callees and edge counts.Copy array sections into a contiguous block on procedure entryUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtimeEnable automatic template instantiationFunctions which return values must end with return statementsAdd a common subexpression elimination pass after loop optimizations-freschedule-modulo-scheduled-loopsEnable/Disable the traditional scheduling in loops that already passed modulo schedulingPerform Dynamic Inter-Procedural Analysis.Allow -g enablement for -fripa -fprofile-generate compiles.Don't import an auxiliary module if it contains asm statementsDon't import an auxiliary module if the command line options mismatch with the primary moduleSubstitute substring in include paths with a new string to allow reuse profile data-fripa-no-promote-always-inline-funcDon't promote always inline static functions assuming they will be inlined and no copy is needed.Disable optimizations that assume default FP rounding behaviorGenerate run time type descriptor informationEnable coverage-guided fuzzing code instrumentation. Inserts call to __sanitizer_cov_trace_pc into every basic block.-fsched-critical-path-heuristicEnable the critical path heuristic in the schedulerEnable the dependent count heuristic in the schedulerEnable the group heuristic in the schedulerEnable scheduling across basic blocksEnable the last instruction heuristic in the schedulerEnable register pressure sensitive insn schedulingEnable the rank heuristic in the schedulerAllow speculative motion of non-loadsEnable the speculative instruction heuristic in the schedulerAllow speculative motion of some loadsAllow speculative motion of more loadsAllow premature scheduling of queued insnsSet dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled-fsched-verbose=<number> Set the verbosity level of the schedulerIf scheduling post reload, do superblock schedulingReschedule instructions before register allocationReschedule instructions after register allocationAppend a second underscore if the name already contains an underscoreAccess data in the same section from shared anchor pointsPerform software pipelining of inner loops during selective scheduling-fsel-sched-pipelining-outer-loopsPerform software pipelining of outer loops during selective scheduling-fsel-sched-reschedule-pipelinedReschedule pipelined regions without pipeliningSchedule instructions using selective scheduling algorithmRun selective scheduling after reloadUse the same size for double as for floatUse the narrowest integer type possible for enumeration typesForce the underlying type for "wchar_t" to be "unsigned short"Show column numbers in diagnostics, when available. Default onEmit function prologues only before parts of the function that need it, rather than at the top of the function.Framepointer shrinkwrapping optimization.Apply negative sign to zero valuesDisable optimizations observable by IEEE signaling NaNsWhen "signed" or "unsigned" is not given make the bitfield signedDisable floating point optimizations that ignore the IEEE signedness of zeroSpecifies the vectorization cost model for code marked with a simd directiveConvert floating point constants to single precision constantsSupport delete operator with objetc's size as the second parameter.Set the source language versionSplit lifetimes of induction variables when loops are unrolledGenerate discontiguous stack framesSplit wide types into independent registersPut all local arrays on stack.Insert stack checking code into the program. Same as -fstack-check=specific-fstack-check=[no|generic|specific] Insert stack checking code into the program-fstack-limit-register=<register> Trap if the stack goes past <register>-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>Use propolice as a stack protection methodUse a stack protection method for every functionUse a smart stack protection method for certain functions-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.Output stack usage information on a per-function basisDisplay statistics accumulated during compilationEnable assignability checks for stores into object arraysAssume strict aliasing rules applyPerform transformations based on enum precisionAssume that values of enumeration type are always within the minimum range of that typeTreat signed overflow as undefinedForce bitfield accesses to match their type widthImplement __atomic operations via libcalls to legacy __sync functionsCheck for syntax errors, then stop-ftabstop=<number> Distance between tab stops for column reportingSet the maximum number of template instantiation notes for a single warning or error-ftemplate-depth=<number> Specify maximum template instantiation depthCreate data files needed by "gcov"Perform jump threading optimizations-fno-threadsafe-statics Do not generate thread-safe code for initializing local staticsReport the time taken by each compiler pass-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation modelReorder top level functions, variables, and asmsPerform superblock formation via tail duplication-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messagesAssume floating-point operations can trapTrap for signed overflow in addition, subtraction and multiplicationEnable SSA-BIT-CCP optimization on treesEnable conditional dead code elimination for builtin callsEnable SSA-CCP optimization on treesEnable loop header copying on treesEnable coalescing of copy-related user variables that are inlinedEnable coalescing of all copy-related user variablesEnable copy propagation on treesReplace SSA temporaries with better names in copiesTransform condition stores into unconditional onesEnable SSA dead code elimination optimization on treesEnable dominator optimizationsEnable forward propagation on treesEnable Full Redundancy Elimination (FRE) on trees-ftree-loop-distribute-patternsEnable loop distribution for patterns transformed into a library callEnable loop distribution on treesConvert conditional jumps in innermost loops to branchless equivalentsAlso if-convert conditional jumps containing memory writesEnable loop invariant motion on treesCreate canonical induction variables in loopsEnable loop interchange transforms. Same as -floop-interchangeEnable loop optimizations on tree levelEnable loop vectorization on treesPerform live range splitting during the SSA->normal passEnable automatic parallelization of loopsIn SSA-PRE optimization on trees, enable partial-partial redundancy eliminationEnable hoisting loads from conditional pointers.Enable SSA-PRE optimization on treesPerform function-local points-to analysis on trees.Enable reassociation on tree levelEnable copy propagation of scalar-evolution information.Enable SSA code sinking on treesEnable basic block vectorization (SLP) on treesPerform straight-line strength reductionPerform scalar replacement of aggregatesPerform conversions of switch initializations.Replace temporary expressions in the SSA->normal passPerform Value Range Propagation on treesWhen generating two-level line tables in DWARF (experimental), add linkage names for all functions (not just inlined functions).Use two-level line tables in DWARF (experimental).Append underscores to externally visible namesCompile whole compilation unit at a timePerform loop unrolling for all loopsLimit non-const non-FP loop unrolling under profile estimates of large code footprintPerform loop unrolling when iteration count is knownAllow loop optimizations to assume that the loops behave in normal wayAllow math optimizations that may violate IEEE or ISO standardsWhen "signed" or "unsigned" is not given make the bitfield unsignedMake "char" unsigned by defaultJust generate unwind tables for exception handlingGenerate code for built-in atomic operationsGenerate code for the Boehm GCUse __cxa_atexit to register destructorsUse __cxa_get_exception_ptr in exception handlingCall a library routine to do integer divisionsUse the bfd linker instead of the default linkerUse the gold linker instead of the default linkerUse the mcld linker instead of the default linkerPerform variable tracking by annotating assignments-fvar-tracking-assignments-toggleToggle -fvar-tracking-assignmentsPerform variable tracking and also tag variables that are uninitialized-fvariable-expansion-in-unrollerApply variable expansion when loops are unrolledEnables the dynamic vectorizer cost model. Preserved for backward compatibility.Specifies the cost model for vectorizationAdd extra commentary to assembler outputMarks all inlined functions and methods as having hidden visibilityChanges visibility to match Microsoft Visual Studio by default-fvisibility=[default|internal|hidden|protected] Set the default symbol visibilityUse expression value profiles in optimizationsValidate vtable pointers before using them.Output vtable verification counters.Output vtable verification pointer sets information.Emit common-like symbols as weak symbolsConstruct webs and split unrelated uses of single variablePerform whole program optimizations-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>Generate a #line directive pointing at the current working directoryRun the link-time optimizer in whole program analysis (WPA) mode.Whole program analysis (WPA) mode with number of parallel jobs specified.Assume signed arithmetic overflow wraps aroundPut zero initialized data in the bss sectionGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link modeGenerate debug information in default formatGenerate debug information in COFF formatGenerate debug information in default version of DWARF formatGenerate debug information in DWARF v2 (or later) formatDump declarations to a .decl fileGenerate debug information in default extended formatGenerate DWARF pubnames and pubtypes sections with GNU extensions.Generate DWARF line number tables and no other debug sectionsGenerate debug information at level 1 with minimal line table-gnat<options> Specify options to GNATSet name of output ALI file (internal switch)Don't generate DWARF pubnames and pubtypes sections.Don't record gcc command line switches in DWARF DW_AT_producer.Don't generate debug information in separate .dwo filesEmit DWARF additions beyond selected versionGenerate DWARF pubnames and pubtypes sections.Record gcc command line switches in DWARF DW_AT_producer.Generate debug information in separate .dwo filesGenerate debug information in STABS formatGenerate debug information in extended STABS formatDon't emit DWARF additions beyond selected versionToggle debug information generationGenerate debug information in VMS formatGenerate debug information in XCOFF formatGenerate debug information in extended XCOFF format-idirafter <dir> Add <dir> to the end of the system include path-imacros <file> Accept definition of macros in <file>-imultiarch <dir> Set <dir> to be the multiarch include subdirectory-imultilib <dir> Set <dir> to be the multilib include subdirectory-include <file> Include the contents of <file> before other files-iplugindir=<dir> Set <dir> to be the default plugin directory-iprefix <path> Specify <path> as a prefix for next two options-iquote <dir> Add <dir> to the end of the quote include path-isysroot <dir> Set <dir> to be the system root directory-isystem <dir> Add <dir> to the start of the system include path-iwithprefix <dir> Add <dir> to the end of the system include path-iwithprefixbefore <dir> Add <dir> to the end of the main include path-mabi=ABI Generate code that conforms to the specified ABIGenerate code for the Android platform.-march=ARCH Use features of architecture ARCHAssume target CPU is configured as big endian-mcpu=CPU Use features of and optimize for CPUWorkaround for ARM Cortex-A53 Erratum number 835769Workaround for ARM Cortex-A53 Erratum number 843419Generate code which uses only the general registersAssume target CPU is configured as little endianUse LRA instead of reload (transitional)Omit the frame pointer in leaf functionsDon't assume that unaligned accesses are handled by the systemCreate a position dependent executableDo not search standard system include directories (those specified with -isystem will still be used)Do not search standard system include directories for C++Do not look for object files in standard path-o <file> Place output into <file>Like -pedantic but issue them as errorsCreate a position independent executableGenerate C header of platform-specific featuresDo not display functions compiled or elapsed timeRemap file names when including filesStatically link the GNU Fortran helper library (libgfortran)Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendumDeprecated in favor of -std=c++11Conform to the ISO 2011 C++ standardConform to the ISO 2014(?) C++ draft standard (experimental and incomplete support)Conform to the ISO 2011 C standard (experimental and incomplete support)Deprecated in favor of -std=c11Conform to the ISO 1990 C standardConform to the ISO 1999 C standardDeprecated in favor of -std=c99Conform to the ISO Fortran 2003 standardConform to the ISO Fortran 2008 standardConform to the ISO Fortran 2008 standard including TS 29113Conform to the ISO Fortran 95 standardConform to nothing in particularConform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensionsDeprecated in favor of -std=gnu++11Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)Conform to the ISO 201y(7?) C++ draft standard with GNU extensions (experimental and incomplete support)Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)Deprecated in favor of -std=gnu11Conform to the ISO 1990 C standard with GNU extensionsConform to the ISO 1999 C standard with GNU extensionsDeprecated in favor of -std=gnu99Conform to the ISO 1990 C standard as amended in 1994Deprecated in favor of -std=iso9899:1999Accept extensions to support legacy codeEnable traditional preprocessing-trigraphs Support ISO C trigraphsDo not predefine system-specific and GCC-specific macrosDisplay the compiler's versionKnown AArch64 ABIs (for use with the -mabi= option):The code model option names for -mcmodel:unknown excess precision style %qsunknown floating point contraction style %qsunrecognized function reorder value %qsunrecognized visibility value %qsunknown vectorizer cost model %qsunknown vtable verify initialization priority %qs/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/vec.c/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/hooks.c%s: all warnings being treated as errors%s: some warnings being treated as errorsIn file included from %r%s:%d:%d%RIn file included from %r%s:%d%R,
/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/
H A Darm-linux-androideabi-gcc-4.9.x4036 All options with the desired characteristics have already been displayedThe following options are not documenteddebug format "%s" conflicts with prior selectionunrecognised debug output level "%s"debug output level %s is too highargument %qs to %<-femit-struct-debug-detailed%> unknown%<-femit-struct-debug-detailed=dir:...%> must allow at least as much as %<-femit-struct-debug-detailed=ind:...%>argument %qs to %<-femit-struct-debug-detailed%> not recognizedargument to %<-O%> should be a non-negative integer, %<g%>, %<s%> or %<fast%>section anchors must be disabled when unit-at-a-time is disabledtoplevel reorder must be disabled when unit-at-a-time is disabledtransactional memory is not supported with non-call exceptionssection anchors must be disabled when toplevel reorder is disabled-freorder-blocks-and-partition does not work with exceptions on this architecture-freorder-blocks-and-partition does not support unwind info on this architecture-freorder-blocks-and-partition does not work on this architecture-fno-fat-lto-objects are supported only with linker pluginonly one -flto-partition value can be specified%<-fsplit-stack%> is not supported by this compiler configurationDebug generation via -g option disabled under -fripa -fprofile-generate (use -fripa-allow-debug to override)-fsanitize=address is incompatible with -fsanitize=kernel-address-fsanitize=address and -fsanitize=kernel-address are incompatible with -fsanitize=thread%s: --param arguments should be of the form NAME=VALUE--help argument %q.*s is ambiguous, please be more specificunrecognized argument to --help= option: %q.*sgetting core file size maximum limit: %msetting core file size limit to maximum: %munrecognized gcc debugging option: %cstructure alignment must be a small power of two, not %dunknown stack check parameter "%s"%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-gdwarf -g%s%> for debug leveldwarf version %d is not supportedunrecognized argument to -fsanitize= option: %q.*s/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/opts-common.ccommand line option %qs is not supported by this configurationargument to %qs should be a non-negative integerunrecognized argument in option %qsvalid arguments to %qs are: %s--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters--print-missing-file-dependencies--print-sysroot-headers-suffix-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>Do not discard comments in macro expansions-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1-F <dir> Add <dir> to the end of the main framework include pathPrint the name of header files as they are used-I <dir> Add <dir> to the end of the main include path-J<directory> Put MODULE files in 'directory'Generate make dependencies and compile-MF <file> Write dependency output to the given fileTreat missing header files as generated filesLike -M but ignore system header filesLike -MD but ignore system header filesGenerate phony targets for all headers-MQ <target> Add a MAKE-quoted targetmissing makefile target after %qs-MT <target> Add an unquoted target-O<number> Set optimization level to <number>Optimize for speed disregarding exact standards complianceOptimize for debugging experience rather than speed or sizeOptimize for space rather than speedDo not generate #line directivesThis switch is deprecated; use -Wextra insteadWarn about things that will change when compiling with an ABI-compliant compilerWarn if a subobject has an abi_tag attribute that the complete object type does not haveWarn about suspicious uses of memory addressesWarn about returning structures, unions or arrays-Waggressive-loop-optimizationsWarn if a loop with constant number of iterations triggers undefined behaviorWarn about possible aliasing of dummy argumentsWarn about alignment of COMMON blocksWarn about missing ampersand in continued character constantsWarn if an array is accessed out of boundsWarn about creation of array temporariesWarn whenever an Objective-C assignment is being intercepted by the garbage collectorWarn about inappropriate attribute usageWarn about casting functions to incompatible typesWarn when a built-in preprocessor macro is undefined or redefinedWarn about C constructs that are not in the common subset of C and C++Deprecated in favor of -Wc++11-compatWarn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011Warn if the type of a variable might be not interoperable with CWarn about pointer casts which increase alignmentWarn about casts which discard qualifiersWarn about subscripts whose type is "char"Warn about truncated character expressionsWarn about variables that might be changed by "longjmp" or "vfork"Warn about possibly nested block comments, and C++ comments spanning more than one physical lineWarn about equality comparisons involving REAL or COMPLEX expressionsWarn for conditionally-supported constructsWarn for implicit type conversions that may change a valueWarn about most implicit conversionsWarn for converting NULL from/to a non-pointer typeWarn in case profiles in -fprofile-use do not matchWarn when a #warning directive is encounteredWarn when all constructors and destructors are privateWarn about __TIME__, __DATE__ and __TIMESTAMP__ usageWarn when a declaration is found after a statementWarn when deleting a pointer to incomplete typeWarn about deleting polymorphic objects with non-virtual destructorsWarn if a deprecated compiler feature, class, method, or field is usedWarn about uses of __attribute__((deprecated)) declarationsWarn when an optimization pass is disabledWarn about compile-time integer division by zeroWarn about implicit conversions from "float" to "double"Warn about violations of Effective C++ style rulesWarn about an empty body in an if or else statementWarn about stray tokens after #elif and #endifWarn about comparison of different enum types-Werror-implicit-function-declarationThis switch is deprecated; use -Werror=implicit-function-declaration insteadTreat specified warning as errorPrint extra (possibly unwanted) warningsWarn if deprecated empty statements are foundExit on the first error occurredWarn for implicit type conversions that cause loss of floating point precisionWarn if testing floating point numbers for equalityDisable promoting warnings to errorsWarn about printf/scanf/strftime/strfmon format string anomaliesWarn about format strings that contain NUL bytesWarn if passing too many arguments to a function for its format stringWarn about format strings that are not literalsWarn about possible security problems with format functionsWarn about strftime formats yielding 2-digit yearsWarn about zero-length formats-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytesWarn when attempting to free a non-heap objectWarn about function call eliminationWarn whenever type qualifiers are ignored.Warn about implicit declarations-Wimplicit-function-declarationWarn about implicit function declarationsWarn when a declaration does not specify a typeWarn about calls with implicit interfaceWarn about called procedures not explicitly declaredWarn about C++11 inheriting constructors when the base has a variadic constructorWarn about variables which are initialized to themselvesWarn when an inlined function cannot be inlinedWarn when there is a cast to a pointer from an integer of a different sizeWarn if a user-procedure has the same name as an intrinsicWarn on intrinsics not part of the selected standardWarn when an atomic memory model parameter is known to be outside the valid range.Warn about invalid uses of the "offsetof" macroWarn about PCH files that are found but not usedWarn when a jump misses a variable initialization-Wlarger-than=<number> Warn if an object is larger than <number> bytesWarn about truncated source linesWarn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.Warn when a logical operator is suspiciously always evaluating to true or falseDo not warn about using "long long" when -pedanticWarn about suspicious declarations of "main"Warn about maybe uninitialized automatic variablesWarn about possibly missing braces around initializersWarn about global functions without previous declarationsWarn about missing fields in struct initializersWarn about user-specified include directories that do not existWarn about function parameters declared without a type specifier in K&R-style functionsWarn about global functions without prototypesswitch %qs is no longer supportedWarn about use of multi-character character constantsWarn about narrowing conversions within { } that are ill-formed in C++11Warn about "extern" declarations not at file scopeWarn when a noexcept expression evaluates to false even though the expression can't actually throwWarn when non-templatized friend functions are declared within a templateWarn about non-virtual destructorsWarn about NULL being passed to argument slots marked as requiring non-NULL-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode stringsWarn if a C-style cast is used in a programWarn for obsolescent usage in a declarationWarn if an old-style parameter definition is usedWarn if a simd directive is overridden by the vectorizer cost modelWarn if .class files are out of dateWarn about overflow in arithmetic expressionsWarn if a string is longer than the maximum portable length specified by the standardWarn about overloaded virtual function namesWarn about overriding initializers without side effectsWarn when the packed attribute has no effect on struct layoutWarn about packed bit-fields whose offset changed in GCC 4.4Warn when padding is required to align structure membersWarn about possibly missing parenthesesIssue warnings needed for strict compliance to the standardWarn when converting the type of pointers to member functionsWarn about function pointer arithmeticWarn when a pointer differs in signedness in an assignmentWarn when a pointer is cast to an integer of a different sizeWarn for -I and -L options using system directories if cross compilingWarn if a property for an Objective-C object has no assign semantics specifiedWarn if inherited methods are unimplementedWarn about real-literal-constants with 'q' exponent-letterWarn when a left-hand-side array variable is reallocatedWarn when a left-hand-side variable is reallocatedWarn about multiple declarations of the same objectWarn if modifiers are specified when not necessaryWarn when the compiler reorders codeWarn about returning a pointer/reference to a local or temporary variable.Warn whenever a function's return type defaults to "int" (C), or about inconsistent return types (C++)Warn if primary and auxiliary modules have mismatched command line optionsWarn if a selector has multiple methodsWarn when a variable is assigned to itselfWarn when a variable of a non-POD type is assigned to itselfWarn about possible violations of sequence point rulesWarn when one local variable shadows anotherWarn when one local variable shadows another local variable or parameter of compatible typeWarn when one local variable shadows another local variable or parameterWarn about signed-unsigned comparisonsWarn for implicit type conversions between signed and unsigned integersWarn when overload promotes from unsigned to signedWarn when not issuing stack smashing protection for some reasonWarn if stack usage might be larger than specified amountWarn about code which might break strict aliasing rulesWarn about uncasted NULL used as sentinelWarn about optimizations that assume that signed overflow is undefinedWarn about unprototyped function declarationsWarn if type signatures of candidate methods do not match exactlyWarn about functions which might be candidates for __attribute__((const))Warn about functions which might be candidates for format attributesWarn about functions which might be candidates for __attribute__((noreturn))Warn about functions which might be candidates for __attribute__((pure))Warn about "suspicious" constructsWarn about enumerated switches, with no default, missing a caseWarn about enumerated switches missing a "default:" statementWarn about all enumerated switches missing a specific caseWarn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are usedDeprecated. This switch has no effectDo not suppress warnings from system headersPermit nonconforming uses of the tab characterWarn if the pointer in a pointer assignment might outlive its target-Wthread-mismatched-lock-acq-relWarn about mismatched lock acquisition and release-Wthread-mismatched-lock-orderWarn about lock acquisition order inconsistent with what specified in the attributesWarn about a lock being acquired recursivelyWarn about potential thread safety issues when the code is annotated with thread safety attributesDoes nothing. For compatibility with clang thread safety analysis.Warn about function calls not properly protected by locks specified in the attributesWarn about shared variables not properly protected by locks specified in the attributes-Wthread-unsupported-lock-nameWarn about uses of unsupported lock names in attributesWarn about features not present in traditional CWarn of prototypes causing type conversions different from what would happen in the absence of prototypeWarn whenever a trampoline is generatedWarn if trigraphs are encountered that might affect the meaning of the programWarn if a comparison is always true or always false due to the limited range of the data typeWarn about @selector()s without previously declared methodsWarn if an undefined macro is used in an #if directiveWarn about underflow of numerical constant expressionsWarn about uninitialized automatic variablesWarn about unrecognized pragmasDoes nothing. Preserved for backward compatibility.Warn if the loop cannot be optimized due to nontrivial assumptions.Warn about unsuffixed float constantsWarn when a function parameter is only set, otherwise unusedWarn when a variable is only set, otherwise unusedWarn about unused dummy arguments.Warn when a function is unusedWarn when typedefs locally defined in a function are not usedWarn about macros defined in the main file that are not usedWarn when a function parameter is unusedWarn if a caller of a function, marked with attribute warn_unused_result, does not use its return valueWarn when an expression value is unusedWarn when a variable is unusedWarn about questionable usage of the macros used to retrieve variable argumentsWarn about using variadic macros-Wvector-operation-performanceWarn when a vector operation is compiled outside the SIMDWarn if a virtual base has a non-trivial move assignment operatorWarn if a variable length array is usedWarn when a register variable is declared volatileIn C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.-Wzero-as-null-pointer-constantWarn when a literal '0' is used as null pointerA synonym for -std=c89 (for C) or -std=c++98 (for C++)-aux-info <file> Emit declaration information into <file>-d<letters> Enable dumps from specific passes of the compiler-dumpbase <file> Set the file basename to be used for dumps-dumpdir <dir> Set the directory name to be used for dumps--CLASSPATH Deprecated; use --classpath insteadGenerate position-independent code if possible (large mode)Generate position-independent code for executables if possible (large mode)Enforce class member access control semantics-fada-spec-parent=unit Dump Ada specs as child units of given parent-faggressive-function-eliminationEliminate multiple function invokations also for impure functions-faggressive-loop-optimizationsAggressively optimize loops using language constraintsEnable alignment of COMMON blocksAlign labels which are only reached by jumpingAll intrinsics procedures are available regardless of selected standard-fallow-parameterless-variadic-functionsAllow variadic functions without named parameterPermit the use of the assert keywordAllow optimization for floating-point arithmetic which may change the result of the operation due to rounding.Generate unwind tables that are exact at each instruction boundaryGenerate auto-inc/dec instructionsUse sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'.Whether to assume the sample profile is accurate.-fauto-profile-record-coverage-in-elfWhether to record annotation coverage info in elf.Use sample profile information for call graph node weights. The profile file is specified in the argument.Do not treat local variables and COMMON blocks as if they were named in SAVE statementsSpecify that backslash in string introduces an escape characterProduce a backtrace when a runtime error is encountered-fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS--bootclasspath=<path> Replace system pathGenerated should be loaded by bootstrap loaderGenerate code to check bounds before indexing arraysReplace add, compare, branch with branch on count registerUse profiling information for branch probabilitiesPerform branch target load optimization before prologue / epilogue threading-fbranch-target-load-optimize2Perform branch target load optimization after prologue / epilogue threadingRestrict target load migration not to re-use registers in any basic block-fcall-saved-<register> Mark <register> as being preserved across functions-fcall-used-<register> Mark <register> as being corrupted by function callsSave registers around function callsWhere shorter, use canonicalized paths to systems headers.Produce a warning at runtime if a array temporary has been created for a procedure argumentCompare branch prediction result and autofdo profile information, store the result in a section in the generated elf file.-fcheck-branch-annotation-threshold=The number of executions a basic block needs to reach before GCC dumps its branch prediction information with -fcheck-branch-annotation.Compare the results of several data dependence analyzers.Check the return value of new in C++Generate checks for references to NULL-fcheck=[...] Specify which runtime checks are to be performed--classpath=<path> Set class path-fcoarray=[...] Specify which coarray parallelization should be usedLooks for opportunities to reduce stack adjustments and stack references.Do not put uninitialized globals in the common sectionRun only the second compilation of -fcompare-debug-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dumpPerform comparison elimination after register allocation has finishedAllow the arguments of the '?' operator to have different typesDoes nothing. Preserved for backward compatibility.Do not perform optimizations increasing noticeably stack usage-fconst-string-class=<name> Use class <name> for constant stringsno class name specified with %qs-fconstexpr-depth=<number> Specify maximum constexpr recursion depthUse big-endian format for unformatted filesUse little-endian format for unformatted filesUse native format for unformatted filesSwap endianness for unformatted filesPerform a register copy-propagation optimization passUse the Cray Pointer extensionPerform cross-jumping optimizationWhen running CSE, follow jumps to their targetsComplex multiplication and division follow Fortran rulesOmit range reduction step when performing complex divisionIgnore 'D' in column one in fixed formTreat lines with 'D' in column one as commentsPlace data items into their own sectionList all available debugging counters with their limits and counts.-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. Use the RTL dead code elimination passEmit debug annotations during preprocessingMap one directory name to another in debug informationOutput .debug_types section when using DWARF v4 debuginfo.Factor complex constructors and destructors to favor space over speed-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-listSet the default double precision kind to an 8 byte wide typeSet the default integer kind to an 8 byte wide typeMake functions no-throw/noexcept by defaultSet the default real kind to an 8 byte wide typeDefer popping functions args from stack until laterAttempt to fill delay slots of branch instructionsDelete dead instructions that may throw exceptionsDelete useless null pointer checksTry to convert virtual calls to direct ones.Perform speculative devirtualization-fdiagnostics-color=[never|always|auto] Colorize diagnosticsShow the source line with a caret indicating the column-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnosticsAmend appropriate diagnostic messages with the command line option that controls them-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization passAllow dollar signs in entity namesPermit '$' as an identifier characterUse the RTL dead store elimination pass-fdump-<type> Dump various compiler internals to a fileWrite all declarations as Ada code transitivelyWrite all declarations as Ada code for the given file only-fdump-final-insns=filename Dump to filename the insns at the end of translationDisplay the code tree after front end optimizationDisplay the code tree after parsing-fdump-go-spec=filename Write all declarations to file as Go codeSuppress output of addresses in debugging dumpsDisplay the code tree after parsing; deprecated optionSuppress output of instruction numbers, line number notes and addresses in debugging dumpsSuppress output of previous and next insn numbers in debugging dumpsEnable CFI tables via GAS assembler directives.Perform DWARF2 duplicate elimination-feliminate-unused-debug-symbolsPerform unused type elimination in debug info-feliminate-unused-debug-typesDo not suppress C++ class debug information.Print to stderr the mapping from module name and function id to assembler function name when -ftest-coverage, -fprofile-generate or -fprofile-use are active, for use in correlating function ids in gcda files with the function name.-femit-struct-debug-baseonly Aggressive reduced debug info for structs-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs-femit-struct-debug-reduced Conservative reduced debug info for structs-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass--encoding=<encoding> Choose input encoding (defaults from your locale)Generate code to check exception specifications-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision-fexec-charset=<cset> Convert all strings and character constants to character set <cset>Perform a number of minor, expensive optimizationsInterpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal.--extdirs=<path> Set the extension directory pathPermit universal character names (\u and \U) in identifiersSupport dynamic initialization of thread-local variables in a different translation unitSpecify that an external BLAS library should be used for matmul calls on large-size arraysOutput lto objects containing both the intermediate language and binary output.Input file is a file with a list of filenames to compileAssume no NaNs or infinities are generated-ffixed-<register> Mark <register> as being unavailable to the compilerAssume that the source file is fixed form-ffixed-line-length-<n> Use n as character line width in fixed modeAllow arbitrary character line width in fixed modeDon't allocate floats and doubles in extended-precision registersScope of for-init-statement variables is local to the loopAlways check for non gcj generated classes archivesPerform a forward propagation pass on RTL-ffp-contract=[off|on|fast] Perform floating-point expression contraction.-ffpe-summary=[...] Print summary of floating point exceptions-ffpe-trap=[...] Stop on following floating point exceptionsAssume that the source file is free form-ffree-line-length-<n> Use n as character line width in free modeAllow arbitrary character line width in free modeDo not assume that standard C libraries and "main" existInject friend functions into enclosing namespace-ffunction-attribute-list=attribute:name,... Add attribute to named functionsAllow function addresses to be held in registersPlace each function into its own sectionPerform global common subexpression eliminationPerform global common subexpression elimination after register allocation has finishedPerform redundant load after store elimination in global common subexpression eliminationPerform enhanced load motion during global common subexpression eliminationPerform store motion after global common subexpression eliminationRecognize GNU-defined keywordsGenerate code for GNU runtime environmentEnable support for GNU transactional memoryUse STB_GNU_UNIQUE if supported by the assemblerUse traditional GNU semantics for inline functionsAdd explicit checks for division overflow in INT_MIN / -1Add explicit checks for division by zero-fgo-dump-<type> Dump Go frontend internal information-fgo-optimize-<type> Turn on optimization passes in the frontend-fgo-pkgpath=<string> Set Go package path-fgo-prefix=<string> Set package-specific prefix for exported Go names-fgo-relative-import-path=<path> Treat a relative import as relative to pathEnable in and out of Graphite representationEnable Graphite Identity transformationEnable guessing of branch probabilities-fhandle-exceptions has been renamed -fexceptions (and is now on by default)Assume the runtime uses a hash table to map an object to its synchronization structureEnable hoisting adjacent loads to encourage generating conditional move instructionsAssume normal C execution environmentPerform conversion of conditional jumps to branchless equivalentsPerform conversion of conditional jumps to conditional executionExport functions even if they can be inlinedEmit implicit instantiations of inline templatesSpecify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statementsEmit implicit instantiations of templatesGenerate instances of Class at runtimeUse offset tables for virtual method callsDo not generate .size directives-finit-character=<n> Initialize local character variables to ASCII value n-finit-integer=<n> Initialize local integer variables to nInitialize local variables to zero (from g77)-finit-logical=<true|false> Initialize local logical variables-finit-real=<zero|nan|inf|-inf> Initialize local real variablesEnable inlining of function declared "inline", disabling disables all inliningInline __atomic operations when a lock free instruction sequence is available.Integrate functions not declared "inline" into their callers when profitable-finline-functions-called-onceIntegrate functions only required by their single caller-finline-limit=<number> Limit the size of inlined functions to <number>Integrate functions into their callers when code size is known not to grow-finput-charset=<cset> Specify the default character set for source filesInstrument function entry and exit with profiling calls-finstrument-functions-exclude-file-list=-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files-finstrument-functions-exclude-function-list=-finstrument-functions-exclude-function-list=name,... Do not instrument listed functionsInterpret any INTEGER(4) as an INTEGER(8)Specify where to find the compiled intrinsic modulesPerform interprocedural constant propagationPerform cloning to make Interprocedural constant propagation strongerPerform interprocedural profile propagationPerform interprocedural points-to analysisDiscover pure and const functionsDiscover readonly and non addressable static variablesPerform interprocedural reduction of aggregates-fira-algorithm=[CB|priority] Set the used IRA algorithmUse IRA based register pressure calculation in RTL hoist optimizations.Use IRA based register pressure calculation in RTL loop optimizations.-fira-region=[one|all|mixed] Set regions for IRAShare slots for saving different hard registers.Share stack slots for spilled pseudo-registers.-fira-verbose=<number> Control IRA's level of diagnostic messages.-fisolate-erroneous-paths-attributeDetect paths which trigger erroneous or undefined behaviour due a NULL value being used in a way which is forbidden by a returns_nonnull or nonnull attribute. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap. -fisolate-erroneous-paths-dereferenceDetect paths which trigger erroneous or undefined behaviour due to dereferencing a NULL pointer. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap.Optimize induction variables on treesAssume native functions are implemented using JNIUse jump tables for sufficiently large switch statementsDon't emit dllexported inline functions unless neededGenerate code for functions even if they are fully inlinedEmit static const variables even if they are not usedAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.Give external symbols a leading underscoreTell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes.Relief of register pressure through live range shrinkageEnable Loop Blocking transformationEnable Loop Interchange transformationEnable the ISL based loop nest optimizerEnable Loop Strip Mining transformationEnable link-time optimization.-flto-compression-level=<number> Use zlib compression level <number> for ILPartition symbols and vars at linktime based on object files they originate fromPartition functions and vars at linktime into approximately same sized bucketsPut every symbol into separate partitionDisable partioning and streamingReport various link-time optimization statisticsReport various link-time optimization statistics for WPA onlyLink-time optimization with number of parallel jobs or jobserver.Run the link-time optimizer in local transformation (LTRANS) mode.Specify a file to which a list of files output by LTRANS is written.Set errno after built-in math functions-fmax-array-constructor=<n> Maximum number of objects in an array constructor-fmax-errors=<number> Maximum number of errors to report-fmax-identifier-length=<n> Maximum identifier length-fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack-fmax-subrecord-length=<n> Maximum length for subrecordsReport on permanent memory allocationReport on permanent memory allocation in WPA onlyAttempt to merge identical constants and constant variablesAttempt to merge identical constants across compilation unitsAttempt to merge identical debug strings across compilation units-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrappingSet default accessibility of module entities to PRIVATE.Perform SMS based modulo scheduling before the first scheduling passPerform SMS based modulo scheduling with register moves allowedMove loop invariant computations out of loopsDon't warn about uses of Microsoft extensionsGenerate code for NeXT (Apple Mac OS X) runtime environmentAssume that receivers of Objective-C messages may be nilEnables the unlimited vectorizer cost model. Preserved for backward compatibility.Support synchronous non-call exceptionsTreat a throw() exception specification as noexcept to improve code sizeSpecify which ABI to use for Objective-C family code and meta-data generation.Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if neededAllow fast jumps to the message dispatcherEnable Objective-C exception and synchronization syntaxEnable garbage collection (GC) in Objective-C/Objective-C++ programsEnable inline checks for nil receivers with the NeXT runtime and ABI version 2.Enable Objective-C setjmp exception handling runtimeConform to the Objective-C 1.0 language as implemented in GCC 4.0When possible do not generate stack framesEnable OpenMP (implies -frecursive in Fortran)Enable OpenMP's SIMD directivesRecognize C++ keywords like "compl" and "xor"Enable all optimization info dumps on stderr-fopt-info[-<type>=filename] Dump compiler optimization detailsOptimize sibling and tail recursive calls-foptimize-static-class-initializationEnable optimization of static class initialization codeEnable string length optimizations on treesTry to lay out derived types as compactly as possiblePack structure members together without holes-fpack-struct=<number> Set initial maximum structure member alignmentReturn small aggregates in memory, not registersLook for and use PCH files even when preprocessingLimit non-const non-FP loop peeling under profile estimates of large code footprintEnable machine specific peephole optimizationsEnable an RTL peephole pass before sched2Downgrade conformance errors to warningsGenerate position-independent code if possible (small mode)Generate position-independent code for executables if possible (small mode)Enable Plan 9 language extensionsUse PLT for PIC calls (-fno-plt: load the address from GOT at call site)-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>Report on memory allocation before interprocedural optimizationRun predictive commoning optimization.Generate prefetch instructions, if available, for arrays in loopsTreat the input file as already preprocessed-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the argumentsEnable basic program profiling codeInsert arc-based program profiling codeEnable correction of flow inconsistent profile data inputSet the top-level directory for storing the profile data. The default is 'pwd'.Dump CFG profile for comparison.Enable common options for generating profile info for profile feedback directed optimizationsfprofile-generate-atomic=[0..3] Atomically increments for profile counters.-fprofile-generate-buildinfo=filename Read build info to include in gcda file from filenameTurn on instrumentation sampling with -fprofile-generate with rate set by --param profile-generate-sampling-rate or environment variable GCOV_SAMPLING_RATEEnable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=Enable function reordering that improves code placementReport on consistency of profileSpecify a substring to be stripped from the profile base file nameEnable common options for performing profile feedback directed optimizationsEnable common options for performing profile feedback directed optimizations, and set -fprofile-dir=Insert code to profile values of expressionsProtect parentheses in expressions-frandom-seed=<string> Make compile reproducible using <string>Enable range checking during compilationInterpret any REAL(4) as a REAL(10)Interpret any REAL(4) as a REAL(16)Interpret any REAL(4) as a REAL(8)Interpret any REAL(8) as a REAL(10)Interpret any REAL(8) as a REAL(16)Interpret any REAL(8) as a REAL(4)Reallocate the LHS in assignmentsSame as -fassociative-math for expressions which include division.-frecord-compilation-info-in-elfRecord the compiler optimizations in a .gnu.switches.text section.Record gcc command line switches in the object file.Use a 4-byte record marker for unformatted filesUse an 8-byte record marker for unformatted filesAllocate local variables on the stack to allow indirect recursionReduce the amount of reflection meta-data generatedTurn on Redundant Extensions Elimination pass.Return small aggregates in registersPerform a register renaming optimization passReorder basic blocks to improve code placement-freorder-blocks-and-partitionReorder basic blocks and partition into hot and cold sectionsReorder functions to improve code placement-freorder-functions=[callgraph] Select the scheme for function reordering. This invokes a linker plugin. Generate .gnu.callgraph.text sections listing callees and edge counts.Copy array sections into a contiguous block on procedure entryUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtimeEnable automatic template instantiationFunctions which return values must end with return statementsAdd a common subexpression elimination pass after loop optimizations-freschedule-modulo-scheduled-loopsEnable/Disable the traditional scheduling in loops that already passed modulo schedulingPerform Dynamic Inter-Procedural Analysis.Allow -g enablement for -fripa -fprofile-generate compiles.Don't import an auxiliary module if it contains asm statementsDon't import an auxiliary module if the command line options mismatch with the primary moduleSubstitute substring in include paths with a new string to allow reuse profile data-fripa-no-promote-always-inline-funcDon't promote always inline static functions assuming they will be inlined and no copy is needed.Disable optimizations that assume default FP rounding behaviorGenerate run time type descriptor informationEnable coverage-guided fuzzing code instrumentation. Inserts call to __sanitizer_cov_trace_pc into every basic block.-fsched-critical-path-heuristicEnable the critical path heuristic in the schedulerEnable the dependent count heuristic in the schedulerEnable the group heuristic in the schedulerEnable scheduling across basic blocksEnable the last instruction heuristic in the schedulerEnable register pressure sensitive insn schedulingEnable the rank heuristic in the schedulerAllow speculative motion of non-loadsEnable the speculative instruction heuristic in the schedulerAllow speculative motion of some loadsAllow speculative motion of more loadsAllow premature scheduling of queued insnsSet dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled-fsched-verbose=<number> Set the verbosity level of the schedulerIf scheduling post reload, do superblock schedulingReschedule instructions before register allocationReschedule instructions after register allocationAppend a second underscore if the name already contains an underscoreAccess data in the same section from shared anchor pointsPerform software pipelining of inner loops during selective scheduling-fsel-sched-pipelining-outer-loopsPerform software pipelining of outer loops during selective scheduling-fsel-sched-reschedule-pipelinedReschedule pipelined regions without pipeliningSchedule instructions using selective scheduling algorithmRun selective scheduling after reloadUse the same size for double as for floatUse the narrowest integer type possible for enumeration typesForce the underlying type for "wchar_t" to be "unsigned short"Show column numbers in diagnostics, when available. Default onEmit function prologues only before parts of the function that need it, rather than at the top of the function.Framepointer shrinkwrapping optimization.Apply negative sign to zero valuesDisable optimizations observable by IEEE signaling NaNsWhen "signed" or "unsigned" is not given make the bitfield signedDisable floating point optimizations that ignore the IEEE signedness of zeroSpecifies the vectorization cost model for code marked with a simd directiveConvert floating point constants to single precision constantsSupport delete operator with objetc's size as the second parameter.Set the source language versionSplit lifetimes of induction variables when loops are unrolledGenerate discontiguous stack framesSplit wide types into independent registersPut all local arrays on stack.Insert stack checking code into the program. Same as -fstack-check=specific-fstack-check=[no|generic|specific] Insert stack checking code into the program-fstack-limit-register=<register> Trap if the stack goes past <register>-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>Use propolice as a stack protection methodUse a stack protection method for every functionUse a smart stack protection method for certain functions-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.Output stack usage information on a per-function basisDisplay statistics accumulated during compilationEnable assignability checks for stores into object arraysAssume strict aliasing rules applyPerform transformations based on enum precisionAssume that values of enumeration type are always within the minimum range of that typeTreat signed overflow as undefinedForce bitfield accesses to match their type widthImplement __atomic operations via libcalls to legacy __sync functionsCheck for syntax errors, then stop-ftabstop=<number> Distance between tab stops for column reportingSet the maximum number of template instantiation notes for a single warning or error-ftemplate-depth=<number> Specify maximum template instantiation depthCreate data files needed by "gcov"Perform jump threading optimizations-fno-threadsafe-statics Do not generate thread-safe code for initializing local staticsReport the time taken by each compiler pass-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation modelReorder top level functions, variables, and asmsPerform superblock formation via tail duplication-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messagesAssume floating-point operations can trapTrap for signed overflow in addition, subtraction and multiplicationEnable SSA-BIT-CCP optimization on treesEnable conditional dead code elimination for builtin callsEnable SSA-CCP optimization on treesEnable loop header copying on treesEnable coalescing of copy-related user variables that are inlinedEnable coalescing of all copy-related user variablesEnable copy propagation on treesReplace SSA temporaries with better names in copiesTransform condition stores into unconditional onesEnable SSA dead code elimination optimization on treesEnable dominator optimizationsEnable forward propagation on treesEnable Full Redundancy Elimination (FRE) on trees-ftree-loop-distribute-patternsEnable loop distribution for patterns transformed into a library callEnable loop distribution on treesConvert conditional jumps in innermost loops to branchless equivalentsAlso if-convert conditional jumps containing memory writesEnable loop invariant motion on treesCreate canonical induction variables in loopsEnable loop interchange transforms. Same as -floop-interchangeEnable loop optimizations on tree levelEnable loop vectorization on treesPerform live range splitting during the SSA->normal passEnable automatic parallelization of loopsIn SSA-PRE optimization on trees, enable partial-partial redundancy eliminationEnable hoisting loads from conditional pointers.Enable SSA-PRE optimization on treesPerform function-local points-to analysis on trees.Enable reassociation on tree levelEnable copy propagation of scalar-evolution information.Enable SSA code sinking on treesEnable basic block vectorization (SLP) on treesPerform straight-line strength reductionPerform scalar replacement of aggregatesPerform conversions of switch initializations.Replace temporary expressions in the SSA->normal passPerform Value Range Propagation on treesWhen generating two-level line tables in DWARF (experimental), add linkage names for all functions (not just inlined functions).Use two-level line tables in DWARF (experimental).Append underscores to externally visible namesCompile whole compilation unit at a timePerform loop unrolling for all loopsLimit non-const non-FP loop unrolling under profile estimates of large code footprintPerform loop unrolling when iteration count is knownAllow loop optimizations to assume that the loops behave in normal wayAllow math optimizations that may violate IEEE or ISO standardsWhen "signed" or "unsigned" is not given make the bitfield unsignedMake "char" unsigned by defaultJust generate unwind tables for exception handlingGenerate code for built-in atomic operationsGenerate code for the Boehm GCUse __cxa_atexit to register destructorsUse __cxa_get_exception_ptr in exception handlingCall a library routine to do integer divisionsUse the bfd linker instead of the default linkerUse the gold linker instead of the default linkerUse the mcld linker instead of the default linkerPerform variable tracking by annotating assignments-fvar-tracking-assignments-toggleToggle -fvar-tracking-assignmentsPerform variable tracking and also tag variables that are uninitialized-fvariable-expansion-in-unrollerApply variable expansion when loops are unrolledEnables the dynamic vectorizer cost model. Preserved for backward compatibility.Specifies the cost model for vectorizationAdd extra commentary to assembler outputMarks all inlined functions and methods as having hidden visibilityChanges visibility to match Microsoft Visual Studio by default-fvisibility=[default|internal|hidden|protected] Set the default symbol visibilityUse expression value profiles in optimizationsValidate vtable pointers before using them.Output vtable verification counters.Output vtable verification pointer sets information.Emit common-like symbols as weak symbolsConstruct webs and split unrelated uses of single variablePerform whole program optimizations-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>Generate a #line directive pointing at the current working directoryRun the link-time optimizer in whole program analysis (WPA) mode.Whole program analysis (WPA) mode with number of parallel jobs specified.Assume signed arithmetic overflow wraps aroundPut zero initialized data in the bss sectionGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link modeGenerate debug information in default formatGenerate debug information in COFF formatGenerate debug information in default version of DWARF formatGenerate debug information in DWARF v2 (or later) formatDump declarations to a .decl fileGenerate debug information in default extended formatGenerate DWARF pubnames and pubtypes sections with GNU extensions.Generate DWARF line number tables and no other debug sectionsGenerate debug information at level 1 with minimal line table-gnat<options> Specify options to GNATSet name of output ALI file (internal switch)Don't generate DWARF pubnames and pubtypes sections.Don't record gcc command line switches in DWARF DW_AT_producer.Don't generate debug information in separate .dwo filesEmit DWARF additions beyond selected versionGenerate DWARF pubnames and pubtypes sections.Record gcc command line switches in DWARF DW_AT_producer.Generate debug information in separate .dwo filesGenerate debug information in STABS formatGenerate debug information in extended STABS formatDon't emit DWARF additions beyond selected versionToggle debug information generationGenerate debug information in VMS formatGenerate debug information in XCOFF formatGenerate debug information in extended XCOFF format-idirafter <dir> Add <dir> to the end of the system include path-imacros <file> Accept definition of macros in <file>-imultiarch <dir> Set <dir> to be the multiarch include subdirectory-imultilib <dir> Set <dir> to be the multilib include subdirectory-include <file> Include the contents of <file> before other files-iplugindir=<dir> Set <dir> to be the default plugin directory-iprefix <path> Specify <path> as a prefix for next two options-iquote <dir> Add <dir> to the end of the quote include path-isysroot <dir> Set <dir> to be the system root directory-isystem <dir> Add <dir> to the start of the system include path-iwithprefix <dir> Add <dir> to the end of the system include path-iwithprefixbefore <dir> Add <dir> to the end of the main include pathGenerate a call to abort if a noreturn function returnsGenerate code for the Android platform.Pass FP arguments in FP registersGenerate APCS conformant stack framesSpecify the name of the target architectureGenerate code in 32 bit ARM state.Assume target CPU is configured as big endianThumb: Assume non-static functions may be called from ARM codeThumb: Assume function pointers may go to non-Thumb aware codeSpecify the name of the target CPUAvoid overlapping destination and address registers on LDRD instructions that may trigger Cortex-M3 errata.Specify if floating point hardware should be usedSpecify the __fp16 floating-point formatSpecify the name of the target floating point hardware/formatAssume target CPU is configured as little endianGenerate call insns as indirect calls, if necessaryUse LRA instead of reload (transitional)Use Neon to perform 64-bits operations rather than core registers.Use the new generic RTX cost tables if new core-specific cost table not available (transitional).Use the old RTX costing tables (transitional).Assume data segments are relative to text segment.Specify the register to be used for PIC addressingStore function names in object codeGenerate IT blocks appropriate for ARMv8.Permit scheduling of a function's prologue sequenceDo not load the PIC register in function prologuesAssume loading data from flash is slower than fetching instructions.Specify the minimum bit alignment of structuresSupport calls between Thumb and ARM instruction setsSpecify thread local storage schemeSpecify how to access the thread pointerThumb: Generate (non-leaf) stack frames even if not neededThumb: Generate (leaf) stack frames even if not neededTune code for the given processorEnable unaligned word and halfword accesses to packed data.Use Neon double-word (rather than quad-word) registers for vectorizationUse Neon quad-word (rather than double-word) registers for vectorizationOnly generate absolute relocations on word sized values.Assume big endian bytes, little endian words. This option is deprecated.Create a position dependent executableDo not search standard system include directories (those specified with -isystem will still be used)Do not search standard system include directories for C++Do not look for object files in standard path-o <file> Place output into <file>Like -pedantic but issue them as errorsCreate a position independent executableGenerate C header of platform-specific featuresDo not display functions compiled or elapsed timeRemap file names when including filesStatically link the GNU Fortran helper library (libgfortran)Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendumDeprecated in favor of -std=c++11Conform to the ISO 2011 C++ standardConform to the ISO 2014(?) C++ draft standard (experimental and incomplete support)Conform to the ISO 2011 C standard (experimental and incomplete support)Deprecated in favor of -std=c11Conform to the ISO 1990 C standardConform to the ISO 1999 C standardDeprecated in favor of -std=c99Conform to the ISO Fortran 2003 standardConform to the ISO Fortran 2008 standardConform to the ISO Fortran 2008 standard including TS 29113Conform to the ISO Fortran 95 standardConform to nothing in particularConform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensionsDeprecated in favor of -std=gnu++11Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)Conform to the ISO 201y(7?) C++ draft standard with GNU extensions (experimental and incomplete support)Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)Deprecated in favor of -std=gnu11Conform to the ISO 1990 C standard with GNU extensionsConform to the ISO 1999 C standard with GNU extensionsDeprecated in favor of -std=gnu99Conform to the ISO 1990 C standard as amended in 1994Deprecated in favor of -std=iso9899:1999Accept extensions to support legacy codeEnable traditional preprocessing-trigraphs Support ISO C trigraphsDo not predefine system-specific and GCC-specific macrosDisplay the compiler's versionKnown ARM ABIs (for use with the -mabi= option):Known ARM architectures (for use with the -march= option):Known __fp16 formats (for use with the -mfp16-format= option):Known ARM FPUs (for use with the -mfpu= option):unknown excess precision style %qsKnown floating-point ABIs (for use with the -mfloat-abi= option):unknown floating point contraction style %qsunrecognized function reorder value %qsKnown ARM CPUs (for use with the -mcpu= and -mtune= options):unrecognized visibility value %qsunknown vectorizer cost model %qsunknown vtable verify initialization priority %qs/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/vec.c/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/hooks.c%s: all warnings being treated as errors%s: some warnings being treated as errorsIn file included from %r%s:%d:%d%RIn file included from %r%s:%d%R,
/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9/bin/
H A Dmips64el-linux-android-gcc-4.9.x3991 All options with the desired characteristics have already been displayedThe following options are not documenteddebug format "%s" conflicts with prior selectionunrecognised debug output level "%s"debug output level %s is too highargument %qs to %<-femit-struct-debug-detailed%> unknown%<-femit-struct-debug-detailed=dir:...%> must allow at least as much as %<-femit-struct-debug-detailed=ind:...%>argument %qs to %<-femit-struct-debug-detailed%> not recognizedargument to %<-O%> should be a non-negative integer, %<g%>, %<s%> or %<fast%>section anchors must be disabled when unit-at-a-time is disabledtoplevel reorder must be disabled when unit-at-a-time is disabledtransactional memory is not supported with non-call exceptionssection anchors must be disabled when toplevel reorder is disabled-freorder-blocks-and-partition does not work with exceptions on this architecture-freorder-blocks-and-partition does not support unwind info on this architecture-freorder-blocks-and-partition does not work on this architecture-fno-fat-lto-objects are supported only with linker pluginonly one -flto-partition value can be specified%<-fsplit-stack%> is not supported by this compiler configurationDebug generation via -g option disabled under -fripa -fprofile-generate (use -fripa-allow-debug to override)-fsanitize=address is incompatible with -fsanitize=kernel-address-fsanitize=address and -fsanitize=kernel-address are incompatible with -fsanitize=thread%s: --param arguments should be of the form NAME=VALUE--help argument %q.*s is ambiguous, please be more specificunrecognized argument to --help= option: %q.*sgetting core file size maximum limit: %msetting core file size limit to maximum: %munrecognized gcc debugging option: %cstructure alignment must be a small power of two, not %dunknown stack check parameter "%s"%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-gdwarf -g%s%> for debug leveldwarf version %d is not supportedunrecognized argument to -fsanitize= option: %q.*s/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/opts-common.ccommand line option %qs is not supported by this configurationargument to %qs should be a non-negative integerunrecognized argument in option %qsvalid arguments to %qs are: %s--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters--print-missing-file-dependencies--print-sysroot-headers-suffix-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>Do not discard comments in macro expansions-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1-F <dir> Add <dir> to the end of the main framework include path-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)Print the name of header files as they are used-I <dir> Add <dir> to the end of the main include path-J<directory> Put MODULE files in 'directory'Generate make dependencies and compile-MF <file> Write dependency output to the given fileTreat missing header files as generated filesLike -M but ignore system header filesLike -MD but ignore system header filesGenerate phony targets for all headers-MQ <target> Add a MAKE-quoted targetmissing makefile target after %qs-MT <target> Add an unquoted target-O<number> Set optimization level to <number>Optimize for speed disregarding exact standards complianceOptimize for debugging experience rather than speed or sizeOptimize for space rather than speedDo not generate #line directivesThis switch is deprecated; use -Wextra insteadWarn about things that will change when compiling with an ABI-compliant compilerWarn if a subobject has an abi_tag attribute that the complete object type does not haveWarn about suspicious uses of memory addressesWarn about returning structures, unions or arrays-Waggressive-loop-optimizationsWarn if a loop with constant number of iterations triggers undefined behaviorWarn about possible aliasing of dummy argumentsWarn about alignment of COMMON blocksWarn about missing ampersand in continued character constantsWarn if an array is accessed out of boundsWarn about creation of array temporariesWarn whenever an Objective-C assignment is being intercepted by the garbage collectorWarn about inappropriate attribute usageWarn about casting functions to incompatible typesWarn when a built-in preprocessor macro is undefined or redefinedWarn about C constructs that are not in the common subset of C and C++Deprecated in favor of -Wc++11-compatWarn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011Warn if the type of a variable might be not interoperable with CWarn about pointer casts which increase alignmentWarn about casts which discard qualifiersWarn about subscripts whose type is "char"Warn about truncated character expressionsWarn about variables that might be changed by "longjmp" or "vfork"Warn about possibly nested block comments, and C++ comments spanning more than one physical lineWarn about equality comparisons involving REAL or COMPLEX expressionsWarn for conditionally-supported constructsWarn for implicit type conversions that may change a valueWarn about most implicit conversionsWarn for converting NULL from/to a non-pointer typeWarn in case profiles in -fprofile-use do not matchWarn when a #warning directive is encounteredWarn when all constructors and destructors are privateWarn about __TIME__, __DATE__ and __TIMESTAMP__ usageWarn when a declaration is found after a statementWarn when deleting a pointer to incomplete typeWarn about deleting polymorphic objects with non-virtual destructorsWarn if a deprecated compiler feature, class, method, or field is usedWarn about uses of __attribute__((deprecated)) declarationsWarn when an optimization pass is disabledWarn about compile-time integer division by zeroWarn about implicit conversions from "float" to "double"Warn about violations of Effective C++ style rulesWarn about an empty body in an if or else statementWarn about stray tokens after #elif and #endifWarn about comparison of different enum types-Werror-implicit-function-declarationThis switch is deprecated; use -Werror=implicit-function-declaration insteadTreat specified warning as errorPrint extra (possibly unwanted) warningsWarn if deprecated empty statements are foundExit on the first error occurredWarn for implicit type conversions that cause loss of floating point precisionWarn if testing floating point numbers for equalityDisable promoting warnings to errorsWarn about printf/scanf/strftime/strfmon format string anomaliesWarn about format strings that contain NUL bytesWarn if passing too many arguments to a function for its format stringWarn about format strings that are not literalsWarn about possible security problems with format functionsWarn about strftime formats yielding 2-digit yearsWarn about zero-length formats-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytesWarn when attempting to free a non-heap objectWarn about function call eliminationWarn whenever type qualifiers are ignored.Warn about implicit declarations-Wimplicit-function-declarationWarn about implicit function declarationsWarn when a declaration does not specify a typeWarn about calls with implicit interfaceWarn about called procedures not explicitly declaredWarn about C++11 inheriting constructors when the base has a variadic constructorWarn about variables which are initialized to themselvesWarn when an inlined function cannot be inlinedWarn when there is a cast to a pointer from an integer of a different sizeWarn if a user-procedure has the same name as an intrinsicWarn on intrinsics not part of the selected standardWarn when an atomic memory model parameter is known to be outside the valid range.Warn about invalid uses of the "offsetof" macroWarn about PCH files that are found but not usedWarn when a jump misses a variable initialization-Wlarger-than=<number> Warn if an object is larger than <number> bytesWarn about truncated source linesWarn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.Warn when a logical operator is suspiciously always evaluating to true or falseDo not warn about using "long long" when -pedanticWarn about suspicious declarations of "main"Warn about maybe uninitialized automatic variablesWarn about possibly missing braces around initializersWarn about global functions without previous declarationsWarn about missing fields in struct initializersWarn about user-specified include directories that do not existWarn about function parameters declared without a type specifier in K&R-style functionsWarn about global functions without prototypesswitch %qs is no longer supportedWarn about use of multi-character character constantsWarn about narrowing conversions within { } that are ill-formed in C++11Warn about "extern" declarations not at file scopeWarn when a noexcept expression evaluates to false even though the expression can't actually throwWarn when non-templatized friend functions are declared within a templateWarn about non-virtual destructorsWarn about NULL being passed to argument slots marked as requiring non-NULL-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode stringsWarn if a C-style cast is used in a programWarn for obsolescent usage in a declarationWarn if an old-style parameter definition is usedWarn if a simd directive is overridden by the vectorizer cost modelWarn if .class files are out of dateWarn about overflow in arithmetic expressionsWarn if a string is longer than the maximum portable length specified by the standardWarn about overloaded virtual function namesWarn about overriding initializers without side effectsWarn when the packed attribute has no effect on struct layoutWarn about packed bit-fields whose offset changed in GCC 4.4Warn when padding is required to align structure membersWarn about possibly missing parenthesesIssue warnings needed for strict compliance to the standardWarn when converting the type of pointers to member functionsWarn about function pointer arithmeticWarn when a pointer differs in signedness in an assignmentWarn when a pointer is cast to an integer of a different sizeWarn for -I and -L options using system directories if cross compilingWarn if a property for an Objective-C object has no assign semantics specifiedWarn if inherited methods are unimplementedWarn about real-literal-constants with 'q' exponent-letterWarn when a left-hand-side array variable is reallocatedWarn when a left-hand-side variable is reallocatedWarn about multiple declarations of the same objectWarn if modifiers are specified when not necessaryWarn when the compiler reorders codeWarn about returning a pointer/reference to a local or temporary variable.Warn whenever a function's return type defaults to "int" (C), or about inconsistent return types (C++)Warn if primary and auxiliary modules have mismatched command line optionsWarn if a selector has multiple methodsWarn when a variable is assigned to itselfWarn when a variable of a non-POD type is assigned to itselfWarn about possible violations of sequence point rulesWarn when one local variable shadows anotherWarn when one local variable shadows another local variable or parameter of compatible typeWarn when one local variable shadows another local variable or parameterWarn about signed-unsigned comparisonsWarn for implicit type conversions between signed and unsigned integersWarn when overload promotes from unsigned to signedWarn when not issuing stack smashing protection for some reasonWarn if stack usage might be larger than specified amountWarn about code which might break strict aliasing rulesWarn about uncasted NULL used as sentinelWarn about optimizations that assume that signed overflow is undefinedWarn about unprototyped function declarationsWarn if type signatures of candidate methods do not match exactlyWarn about functions which might be candidates for __attribute__((const))Warn about functions which might be candidates for format attributesWarn about functions which might be candidates for __attribute__((noreturn))Warn about functions which might be candidates for __attribute__((pure))Warn about "suspicious" constructsWarn about enumerated switches, with no default, missing a caseWarn about enumerated switches missing a "default:" statementWarn about all enumerated switches missing a specific caseWarn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are usedDeprecated. This switch has no effectDo not suppress warnings from system headersPermit nonconforming uses of the tab characterWarn if the pointer in a pointer assignment might outlive its target-Wthread-mismatched-lock-acq-relWarn about mismatched lock acquisition and release-Wthread-mismatched-lock-orderWarn about lock acquisition order inconsistent with what specified in the attributesWarn about a lock being acquired recursivelyWarn about potential thread safety issues when the code is annotated with thread safety attributesDoes nothing. For compatibility with clang thread safety analysis.Warn about function calls not properly protected by locks specified in the attributesWarn about shared variables not properly protected by locks specified in the attributes-Wthread-unsupported-lock-nameWarn about uses of unsupported lock names in attributesWarn about features not present in traditional CWarn of prototypes causing type conversions different from what would happen in the absence of prototypeWarn whenever a trampoline is generatedWarn if trigraphs are encountered that might affect the meaning of the programWarn if a comparison is always true or always false due to the limited range of the data typeWarn about @selector()s without previously declared methodsWarn if an undefined macro is used in an #if directiveWarn about underflow of numerical constant expressionsWarn about uninitialized automatic variablesWarn about unrecognized pragmasDoes nothing. Preserved for backward compatibility.Warn if the loop cannot be optimized due to nontrivial assumptions.Warn about unsuffixed float constantsWarn when a function parameter is only set, otherwise unusedWarn when a variable is only set, otherwise unusedWarn about unused dummy arguments.Warn when a function is unusedWarn when typedefs locally defined in a function are not usedWarn about macros defined in the main file that are not usedWarn when a function parameter is unusedWarn if a caller of a function, marked with attribute warn_unused_result, does not use its return valueWarn when an expression value is unusedWarn when a variable is unusedWarn about questionable usage of the macros used to retrieve variable argumentsWarn about using variadic macros-Wvector-operation-performanceWarn when a vector operation is compiled outside the SIMDWarn if a virtual base has a non-trivial move assignment operatorWarn if a variable length array is usedWarn when a register variable is declared volatileIn C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.-Wzero-as-null-pointer-constantWarn when a literal '0' is used as null pointerA synonym for -std=c89 (for C) or -std=c++98 (for C++)-aux-info <file> Emit declaration information into <file>-d<letters> Enable dumps from specific passes of the compiler-dumpbase <file> Set the file basename to be used for dumps-dumpdir <dir> Set the directory name to be used for dumps--CLASSPATH Deprecated; use --classpath insteadGenerate position-independent code if possible (large mode)Generate position-independent code for executables if possible (large mode)Enforce class member access control semantics-fada-spec-parent=unit Dump Ada specs as child units of given parent-faggressive-function-eliminationEliminate multiple function invokations also for impure functions-faggressive-loop-optimizationsAggressively optimize loops using language constraintsEnable alignment of COMMON blocksAlign labels which are only reached by jumpingAll intrinsics procedures are available regardless of selected standard-fallow-parameterless-variadic-functionsAllow variadic functions without named parameterPermit the use of the assert keywordAllow optimization for floating-point arithmetic which may change the result of the operation due to rounding.Generate unwind tables that are exact at each instruction boundaryGenerate auto-inc/dec instructionsUse sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'.Whether to assume the sample profile is accurate.-fauto-profile-record-coverage-in-elfWhether to record annotation coverage info in elf.Use sample profile information for call graph node weights. The profile file is specified in the argument.Do not treat local variables and COMMON blocks as if they were named in SAVE statementsSpecify that backslash in string introduces an escape characterProduce a backtrace when a runtime error is encountered-fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS--bootclasspath=<path> Replace system pathGenerated should be loaded by bootstrap loaderGenerate code to check bounds before indexing arraysReplace add, compare, branch with branch on count registerUse profiling information for branch probabilitiesPerform branch target load optimization before prologue / epilogue threading-fbranch-target-load-optimize2Perform branch target load optimization after prologue / epilogue threadingRestrict target load migration not to re-use registers in any basic block-fcall-saved-<register> Mark <register> as being preserved across functions-fcall-used-<register> Mark <register> as being corrupted by function callsSave registers around function callsWhere shorter, use canonicalized paths to systems headers.Produce a warning at runtime if a array temporary has been created for a procedure argumentCompare branch prediction result and autofdo profile information, store the result in a section in the generated elf file.-fcheck-branch-annotation-threshold=The number of executions a basic block needs to reach before GCC dumps its branch prediction information with -fcheck-branch-annotation.Compare the results of several data dependence analyzers.Check the return value of new in C++Generate checks for references to NULL-fcheck=[...] Specify which runtime checks are to be performed--classpath=<path> Set class path-fcoarray=[...] Specify which coarray parallelization should be usedLooks for opportunities to reduce stack adjustments and stack references.Do not put uninitialized globals in the common sectionRun only the second compilation of -fcompare-debug-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dumpPerform comparison elimination after register allocation has finishedAllow the arguments of the '?' operator to have different typesDoes nothing. Preserved for backward compatibility.Do not perform optimizations increasing noticeably stack usage-fconst-string-class=<name> Use class <name> for constant stringsno class name specified with %qs-fconstexpr-depth=<number> Specify maximum constexpr recursion depthUse big-endian format for unformatted filesUse little-endian format for unformatted filesUse native format for unformatted filesSwap endianness for unformatted filesPerform a register copy-propagation optimization passUse the Cray Pointer extensionPerform cross-jumping optimizationWhen running CSE, follow jumps to their targetsComplex multiplication and division follow Fortran rulesOmit range reduction step when performing complex divisionIgnore 'D' in column one in fixed formTreat lines with 'D' in column one as commentsPlace data items into their own sectionList all available debugging counters with their limits and counts.-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. Use the RTL dead code elimination passEmit debug annotations during preprocessingMap one directory name to another in debug informationOutput .debug_types section when using DWARF v4 debuginfo.Factor complex constructors and destructors to favor space over speed-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-listSet the default double precision kind to an 8 byte wide typeSet the default integer kind to an 8 byte wide typeMake functions no-throw/noexcept by defaultSet the default real kind to an 8 byte wide typeDefer popping functions args from stack until laterAttempt to fill delay slots of branch instructionsDelete dead instructions that may throw exceptionsDelete useless null pointer checksTry to convert virtual calls to direct ones.Perform speculative devirtualization-fdiagnostics-color=[never|always|auto] Colorize diagnosticsShow the source line with a caret indicating the column-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnosticsAmend appropriate diagnostic messages with the command line option that controls them-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization passAllow dollar signs in entity namesPermit '$' as an identifier characterUse the RTL dead store elimination pass-fdump-<type> Dump various compiler internals to a fileWrite all declarations as Ada code transitivelyWrite all declarations as Ada code for the given file only-fdump-final-insns=filename Dump to filename the insns at the end of translationDisplay the code tree after front end optimizationDisplay the code tree after parsing-fdump-go-spec=filename Write all declarations to file as Go codeSuppress output of addresses in debugging dumpsDisplay the code tree after parsing; deprecated optionSuppress output of instruction numbers, line number notes and addresses in debugging dumpsSuppress output of previous and next insn numbers in debugging dumpsEnable CFI tables via GAS assembler directives.Perform DWARF2 duplicate elimination-feliminate-unused-debug-symbolsPerform unused type elimination in debug info-feliminate-unused-debug-typesDo not suppress C++ class debug information.Print to stderr the mapping from module name and function id to assembler function name when -ftest-coverage, -fprofile-generate or -fprofile-use are active, for use in correlating function ids in gcda files with the function name.-femit-struct-debug-baseonly Aggressive reduced debug info for structs-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs-femit-struct-debug-reduced Conservative reduced debug info for structs-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass--encoding=<encoding> Choose input encoding (defaults from your locale)Generate code to check exception specifications-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision-fexec-charset=<cset> Convert all strings and character constants to character set <cset>Perform a number of minor, expensive optimizationsInterpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal.--extdirs=<path> Set the extension directory pathPermit universal character names (\u and \U) in identifiersSupport dynamic initialization of thread-local variables in a different translation unitSpecify that an external BLAS library should be used for matmul calls on large-size arraysOutput lto objects containing both the intermediate language and binary output.Input file is a file with a list of filenames to compileAssume no NaNs or infinities are generated-ffixed-<register> Mark <register> as being unavailable to the compilerAssume that the source file is fixed form-ffixed-line-length-<n> Use n as character line width in fixed modeAllow arbitrary character line width in fixed modeDon't allocate floats and doubles in extended-precision registersScope of for-init-statement variables is local to the loopAlways check for non gcj generated classes archivesPerform a forward propagation pass on RTL-ffp-contract=[off|on|fast] Perform floating-point expression contraction.-ffpe-summary=[...] Print summary of floating point exceptions-ffpe-trap=[...] Stop on following floating point exceptionsAssume that the source file is free form-ffree-line-length-<n> Use n as character line width in free modeAllow arbitrary character line width in free modeDo not assume that standard C libraries and "main" existInject friend functions into enclosing namespace-ffunction-attribute-list=attribute:name,... Add attribute to named functionsAllow function addresses to be held in registersPlace each function into its own sectionPerform global common subexpression eliminationPerform global common subexpression elimination after register allocation has finishedPerform redundant load after store elimination in global common subexpression eliminationPerform enhanced load motion during global common subexpression eliminationPerform store motion after global common subexpression eliminationRecognize GNU-defined keywordsGenerate code for GNU runtime environmentEnable support for GNU transactional memoryUse STB_GNU_UNIQUE if supported by the assemblerUse traditional GNU semantics for inline functionsAdd explicit checks for division overflow in INT_MIN / -1Add explicit checks for division by zero-fgo-dump-<type> Dump Go frontend internal information-fgo-optimize-<type> Turn on optimization passes in the frontend-fgo-pkgpath=<string> Set Go package path-fgo-prefix=<string> Set package-specific prefix for exported Go names-fgo-relative-import-path=<path> Treat a relative import as relative to pathEnable in and out of Graphite representationEnable Graphite Identity transformationEnable guessing of branch probabilities-fhandle-exceptions has been renamed -fexceptions (and is now on by default)Assume the runtime uses a hash table to map an object to its synchronization structureEnable hoisting adjacent loads to encourage generating conditional move instructionsAssume normal C execution environmentPerform conversion of conditional jumps to branchless equivalentsPerform conversion of conditional jumps to conditional executionExport functions even if they can be inlinedEmit implicit instantiations of inline templatesSpecify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statementsEmit implicit instantiations of templatesGenerate instances of Class at runtimeUse offset tables for virtual method callsDo not generate .size directives-finit-character=<n> Initialize local character variables to ASCII value n-finit-integer=<n> Initialize local integer variables to nInitialize local variables to zero (from g77)-finit-logical=<true|false> Initialize local logical variables-finit-real=<zero|nan|inf|-inf> Initialize local real variablesEnable inlining of function declared "inline", disabling disables all inliningInline __atomic operations when a lock free instruction sequence is available.Integrate functions not declared "inline" into their callers when profitable-finline-functions-called-onceIntegrate functions only required by their single caller-finline-limit=<number> Limit the size of inlined functions to <number>Integrate functions into their callers when code size is known not to grow-finput-charset=<cset> Specify the default character set for source filesInstrument function entry and exit with profiling calls-finstrument-functions-exclude-file-list=-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files-finstrument-functions-exclude-function-list=-finstrument-functions-exclude-function-list=name,... Do not instrument listed functionsInterpret any INTEGER(4) as an INTEGER(8)Specify where to find the compiled intrinsic modulesPerform interprocedural constant propagationPerform cloning to make Interprocedural constant propagation strongerPerform interprocedural profile propagationPerform interprocedural points-to analysisDiscover pure and const functionsDiscover readonly and non addressable static variablesPerform interprocedural reduction of aggregates-fira-algorithm=[CB|priority] Set the used IRA algorithmUse IRA based register pressure calculation in RTL hoist optimizations.Use IRA based register pressure calculation in RTL loop optimizations.-fira-region=[one|all|mixed] Set regions for IRAShare slots for saving different hard registers.Share stack slots for spilled pseudo-registers.-fira-verbose=<number> Control IRA's level of diagnostic messages.-fisolate-erroneous-paths-attributeDetect paths which trigger erroneous or undefined behaviour due a NULL value being used in a way which is forbidden by a returns_nonnull or nonnull attribute. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap. -fisolate-erroneous-paths-dereferenceDetect paths which trigger erroneous or undefined behaviour due to dereferencing a NULL pointer. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap.Optimize induction variables on treesAssume native functions are implemented using JNIUse jump tables for sufficiently large switch statementsDon't emit dllexported inline functions unless neededGenerate code for functions even if they are fully inlinedEmit static const variables even if they are not usedAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.Give external symbols a leading underscoreTell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes.Relief of register pressure through live range shrinkageEnable Loop Blocking transformationEnable Loop Interchange transformationEnable the ISL based loop nest optimizerEnable Loop Strip Mining transformationEnable link-time optimization.-flto-compression-level=<number> Use zlib compression level <number> for ILPartition symbols and vars at linktime based on object files they originate fromPartition functions and vars at linktime into approximately same sized bucketsPut every symbol into separate partitionDisable partioning and streamingReport various link-time optimization statisticsReport various link-time optimization statistics for WPA onlyLink-time optimization with number of parallel jobs or jobserver.Run the link-time optimizer in local transformation (LTRANS) mode.Specify a file to which a list of files output by LTRANS is written.Set errno after built-in math functions-fmax-array-constructor=<n> Maximum number of objects in an array constructor-fmax-errors=<number> Maximum number of errors to report-fmax-identifier-length=<n> Maximum identifier length-fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack-fmax-subrecord-length=<n> Maximum length for subrecordsReport on permanent memory allocationReport on permanent memory allocation in WPA onlyAttempt to merge identical constants and constant variablesAttempt to merge identical constants across compilation unitsAttempt to merge identical debug strings across compilation units-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrappingSet default accessibility of module entities to PRIVATE.Perform SMS based modulo scheduling before the first scheduling passPerform SMS based modulo scheduling with register moves allowedMove loop invariant computations out of loopsDon't warn about uses of Microsoft extensionsGenerate code for NeXT (Apple Mac OS X) runtime environmentAssume that receivers of Objective-C messages may be nilEnables the unlimited vectorizer cost model. Preserved for backward compatibility.Support synchronous non-call exceptionsTreat a throw() exception specification as noexcept to improve code sizeSpecify which ABI to use for Objective-C family code and meta-data generation.Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if neededAllow fast jumps to the message dispatcherEnable Objective-C exception and synchronization syntaxEnable garbage collection (GC) in Objective-C/Objective-C++ programsEnable inline checks for nil receivers with the NeXT runtime and ABI version 2.Enable Objective-C setjmp exception handling runtimeConform to the Objective-C 1.0 language as implemented in GCC 4.0When possible do not generate stack framesEnable OpenMP (implies -frecursive in Fortran)Enable OpenMP's SIMD directivesRecognize C++ keywords like "compl" and "xor"Enable all optimization info dumps on stderr-fopt-info[-<type>=filename] Dump compiler optimization detailsOptimize sibling and tail recursive calls-foptimize-static-class-initializationEnable optimization of static class initialization codeEnable string length optimizations on treesTry to lay out derived types as compactly as possiblePack structure members together without holes-fpack-struct=<number> Set initial maximum structure member alignmentReturn small aggregates in memory, not registersLook for and use PCH files even when preprocessingLimit non-const non-FP loop peeling under profile estimates of large code footprintEnable machine specific peephole optimizationsEnable an RTL peephole pass before sched2Downgrade conformance errors to warningsGenerate position-independent code if possible (small mode)Generate position-independent code for executables if possible (small mode)Enable Plan 9 language extensionsUse PLT for PIC calls (-fno-plt: load the address from GOT at call site)-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>Report on memory allocation before interprocedural optimizationRun predictive commoning optimization.Generate prefetch instructions, if available, for arrays in loopsTreat the input file as already preprocessed-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the argumentsEnable basic program profiling codeInsert arc-based program profiling codeEnable correction of flow inconsistent profile data inputSet the top-level directory for storing the profile data. The default is 'pwd'.Dump CFG profile for comparison.Enable common options for generating profile info for profile feedback directed optimizationsfprofile-generate-atomic=[0..3] Atomically increments for profile counters.-fprofile-generate-buildinfo=filename Read build info to include in gcda file from filenameTurn on instrumentation sampling with -fprofile-generate with rate set by --param profile-generate-sampling-rate or environment variable GCOV_SAMPLING_RATEEnable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=Enable function reordering that improves code placementReport on consistency of profileSpecify a substring to be stripped from the profile base file nameEnable common options for performing profile feedback directed optimizationsEnable common options for performing profile feedback directed optimizations, and set -fprofile-dir=Insert code to profile values of expressionsProtect parentheses in expressions-frandom-seed=<string> Make compile reproducible using <string>Enable range checking during compilationInterpret any REAL(4) as a REAL(10)Interpret any REAL(4) as a REAL(16)Interpret any REAL(4) as a REAL(8)Interpret any REAL(8) as a REAL(10)Interpret any REAL(8) as a REAL(16)Interpret any REAL(8) as a REAL(4)Reallocate the LHS in assignmentsSame as -fassociative-math for expressions which include division.-frecord-compilation-info-in-elfRecord the compiler optimizations in a .gnu.switches.text section.Record gcc command line switches in the object file.Use a 4-byte record marker for unformatted filesUse an 8-byte record marker for unformatted filesAllocate local variables on the stack to allow indirect recursionReduce the amount of reflection meta-data generatedTurn on Redundant Extensions Elimination pass.Return small aggregates in registersPerform a register renaming optimization passReorder basic blocks to improve code placement-freorder-blocks-and-partitionReorder basic blocks and partition into hot and cold sectionsReorder functions to improve code placement-freorder-functions=[callgraph] Select the scheme for function reordering. This invokes a linker plugin. Generate .gnu.callgraph.text sections listing callees and edge counts.Copy array sections into a contiguous block on procedure entryUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtimeEnable automatic template instantiationFunctions which return values must end with return statementsAdd a common subexpression elimination pass after loop optimizations-freschedule-modulo-scheduled-loopsEnable/Disable the traditional scheduling in loops that already passed modulo schedulingPerform Dynamic Inter-Procedural Analysis.Allow -g enablement for -fripa -fprofile-generate compiles.Don't import an auxiliary module if it contains asm statementsDon't import an auxiliary module if the command line options mismatch with the primary moduleSubstitute substring in include paths with a new string to allow reuse profile data-fripa-no-promote-always-inline-funcDon't promote always inline static functions assuming they will be inlined and no copy is needed.Disable optimizations that assume default FP rounding behaviorGenerate run time type descriptor informationEnable coverage-guided fuzzing code instrumentation. Inserts call to __sanitizer_cov_trace_pc into every basic block.-fsched-critical-path-heuristicEnable the critical path heuristic in the schedulerEnable the dependent count heuristic in the schedulerEnable the group heuristic in the schedulerEnable scheduling across basic blocksEnable the last instruction heuristic in the schedulerEnable register pressure sensitive insn schedulingEnable the rank heuristic in the schedulerAllow speculative motion of non-loadsEnable the speculative instruction heuristic in the schedulerAllow speculative motion of some loadsAllow speculative motion of more loadsAllow premature scheduling of queued insnsSet dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled-fsched-verbose=<number> Set the verbosity level of the schedulerIf scheduling post reload, do superblock schedulingReschedule instructions before register allocationReschedule instructions after register allocationAppend a second underscore if the name already contains an underscoreAccess data in the same section from shared anchor pointsPerform software pipelining of inner loops during selective scheduling-fsel-sched-pipelining-outer-loopsPerform software pipelining of outer loops during selective scheduling-fsel-sched-reschedule-pipelinedReschedule pipelined regions without pipeliningSchedule instructions using selective scheduling algorithmRun selective scheduling after reloadUse the same size for double as for floatUse the narrowest integer type possible for enumeration typesForce the underlying type for "wchar_t" to be "unsigned short"Show column numbers in diagnostics, when available. Default onEmit function prologues only before parts of the function that need it, rather than at the top of the function.Framepointer shrinkwrapping optimization.Apply negative sign to zero valuesDisable optimizations observable by IEEE signaling NaNsWhen "signed" or "unsigned" is not given make the bitfield signedDisable floating point optimizations that ignore the IEEE signedness of zeroSpecifies the vectorization cost model for code marked with a simd directiveConvert floating point constants to single precision constantsSupport delete operator with objetc's size as the second parameter.Set the source language versionSplit lifetimes of induction variables when loops are unrolledGenerate discontiguous stack framesSplit wide types into independent registersPut all local arrays on stack.Insert stack checking code into the program. Same as -fstack-check=specific-fstack-check=[no|generic|specific] Insert stack checking code into the program-fstack-limit-register=<register> Trap if the stack goes past <register>-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>Use propolice as a stack protection methodUse a stack protection method for every functionUse a smart stack protection method for certain functions-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.Output stack usage information on a per-function basisDisplay statistics accumulated during compilationEnable assignability checks for stores into object arraysAssume strict aliasing rules applyPerform transformations based on enum precisionAssume that values of enumeration type are always within the minimum range of that typeTreat signed overflow as undefinedForce bitfield accesses to match their type widthImplement __atomic operations via libcalls to legacy __sync functionsCheck for syntax errors, then stop-ftabstop=<number> Distance between tab stops for column reportingSet the maximum number of template instantiation notes for a single warning or error-ftemplate-depth=<number> Specify maximum template instantiation depthCreate data files needed by "gcov"Perform jump threading optimizations-fno-threadsafe-statics Do not generate thread-safe code for initializing local staticsReport the time taken by each compiler pass-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation modelReorder top level functions, variables, and asmsPerform superblock formation via tail duplication-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messagesAssume floating-point operations can trapTrap for signed overflow in addition, subtraction and multiplicationEnable SSA-BIT-CCP optimization on treesEnable conditional dead code elimination for builtin callsEnable SSA-CCP optimization on treesEnable loop header copying on treesEnable coalescing of copy-related user variables that are inlinedEnable coalescing of all copy-related user variablesEnable copy propagation on treesReplace SSA temporaries with better names in copiesTransform condition stores into unconditional onesEnable SSA dead code elimination optimization on treesEnable dominator optimizationsEnable forward propagation on treesEnable Full Redundancy Elimination (FRE) on trees-ftree-loop-distribute-patternsEnable loop distribution for patterns transformed into a library callEnable loop distribution on treesConvert conditional jumps in innermost loops to branchless equivalentsAlso if-convert conditional jumps containing memory writesEnable loop invariant motion on treesCreate canonical induction variables in loopsEnable loop interchange transforms. Same as -floop-interchangeEnable loop optimizations on tree levelEnable loop vectorization on treesPerform live range splitting during the SSA->normal passEnable automatic parallelization of loopsIn SSA-PRE optimization on trees, enable partial-partial redundancy eliminationEnable hoisting loads from conditional pointers.Enable SSA-PRE optimization on treesPerform function-local points-to analysis on trees.Enable reassociation on tree levelEnable copy propagation of scalar-evolution information.Enable SSA code sinking on treesEnable basic block vectorization (SLP) on treesPerform straight-line strength reductionPerform scalar replacement of aggregatesPerform conversions of switch initializations.Replace temporary expressions in the SSA->normal passPerform Value Range Propagation on treesWhen generating two-level line tables in DWARF (experimental), add linkage names for all functions (not just inlined functions).Use two-level line tables in DWARF (experimental).Append underscores to externally visible namesCompile whole compilation unit at a timePerform loop unrolling for all loopsLimit non-const non-FP loop unrolling under profile estimates of large code footprintPerform loop unrolling when iteration count is knownAllow loop optimizations to assume that the loops behave in normal wayAllow math optimizations that may violate IEEE or ISO standardsWhen "signed" or "unsigned" is not given make the bitfield unsignedMake "char" unsigned by defaultJust generate unwind tables for exception handlingGenerate code for built-in atomic operationsGenerate code for the Boehm GCUse __cxa_atexit to register destructorsUse __cxa_get_exception_ptr in exception handlingCall a library routine to do integer divisionsUse the bfd linker instead of the default linkerUse the gold linker instead of the default linkerUse the mcld linker instead of the default linkerPerform variable tracking by annotating assignments-fvar-tracking-assignments-toggleToggle -fvar-tracking-assignmentsPerform variable tracking and also tag variables that are uninitialized-fvariable-expansion-in-unrollerApply variable expansion when loops are unrolledEnables the dynamic vectorizer cost model. Preserved for backward compatibility.Specifies the cost model for vectorizationAdd extra commentary to assembler outputMarks all inlined functions and methods as having hidden visibilityChanges visibility to match Microsoft Visual Studio by default-fvisibility=[default|internal|hidden|protected] Set the default symbol visibilityUse expression value profiles in optimizationsValidate vtable pointers before using them.Output vtable verification counters.Output vtable verification pointer sets information.Emit common-like symbols as weak symbolsConstruct webs and split unrelated uses of single variablePerform whole program optimizations-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>Generate a #line directive pointing at the current working directoryRun the link-time optimizer in whole program analysis (WPA) mode.Whole program analysis (WPA) mode with number of parallel jobs specified.Assume signed arithmetic overflow wraps aroundPut zero initialized data in the bss sectionGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link modeGenerate debug information in default formatGenerate debug information in COFF formatGenerate debug information in default version of DWARF formatGenerate debug information in DWARF v2 (or later) formatDump declarations to a .decl fileGenerate debug information in default extended formatGenerate DWARF pubnames and pubtypes sections with GNU extensions.Generate DWARF line number tables and no other debug sectionsGenerate debug information at level 1 with minimal line table-gnat<options> Specify options to GNATSet name of output ALI file (internal switch)Don't generate DWARF pubnames and pubtypes sections.Don't record gcc command line switches in DWARF DW_AT_producer.Don't generate debug information in separate .dwo filesEmit DWARF additions beyond selected versionGenerate DWARF pubnames and pubtypes sections.Record gcc command line switches in DWARF DW_AT_producer.Generate debug information in separate .dwo filesGenerate debug information in STABS formatGenerate debug information in extended STABS formatDon't emit DWARF additions beyond selected versionToggle debug information generationGenerate debug information in VMS formatGenerate debug information in XCOFF formatGenerate debug information in extended XCOFF format-idirafter <dir> Add <dir> to the end of the system include path-imacros <file> Accept definition of macros in <file>-imultiarch <dir> Set <dir> to be the multiarch include subdirectory-imultilib <dir> Set <dir> to be the multilib include subdirectory-include <file> Include the contents of <file> before other files-iplugindir=<dir> Set <dir> to be the default plugin directory-iprefix <path> Specify <path> as a prefix for next two options-iquote <dir> Add <dir> to the end of the quote include path-isysroot <dir> Set <dir> to be the system root directory-isystem <dir> Add <dir> to the start of the system include path-iwithprefix <dir> Add <dir> to the end of the system include path-iwithprefixbefore <dir> Add <dir> to the end of the main include path-mabi=ABI Generate code that conforms to the given ABIGenerate code that can be used in SVR4-style dynamic objects-mabs=MODE Select the IEEE 754 ABS/NEG instruction execution modeGenerate code for the Android platform.-march=ISA Generate code for the given ISA-mbranch-cost=COST Set the cost of branches to roughly COST instructionsUse Branch Likely instructions, overriding the architecture defaultTrap on integer divide by zero-mcode-readable=SETTING Specify when instructions are allowed to access codeSpecify the compact branch usage policy never Only use delay slot branches optimal Use compact branches where beneficial always Only use compact branchesUse branch-and-break sequences to check for integer divide by zeroUse trap instructions to check for integer divide by zeroAllow the use of MDMX instructionsAllow hardware floating-point instructions to cover both 32-bit and 64-bit operationsUse MIPS-DSP REV 2 instructionsUse MIPS-DSP Rev 3 instructionsUse Enhanced Virtual Addressing instructionsUse NewABI-style %reloc() assembly operatorsUse -G for data that is not defined by the current objectWork around certain 24K errataWork around certain R10000 errataWork around certain R4000 errataWork around certain R4400 errataWork around certain RM7000 errataWork around errata for early SB-1 revision 2 coresWork around certain VR4120 errataWork around VR4130 mflo/mfhi errataWork around an early 4300 hardware bugSwitch on/off MIPS16 ASE on alternating functions for compiler testing-mflush-func=FUNC Use FUNC to flush the cache before calling stack trampolinesUse 32-bit floating-point registersUse 64-bit floating-point registersGenerate floating-point multiply-add instructionsUse GP-relative addressing to access small dataAllow the use of hardware floating-point ABI and instructionsUse integer madd/msub instructionsGenerate code that is link-compatible with MIPS16 and microMIPS code.An alias for minterlink-compressed provided for backward-compatibility.-mipsN Generate code for ISA level NUse ldc1/ldxc1 and sdc1/sdxc1 instructionUse ll, sc and sync instructionsUse PMC-style 'mad' instructionsPass the address of the ra save location to _mcount in $12Use MIPS MSA Extension instructionsAllow the use of MT instructionsAllow the use of MXU instructions-mnan=ENCODING Select the IEEE 754 NaN data encodingPrevent the use of all floating-point operationsDo not use a cache-flushing function before calling stack trampolinesDo not use MIPS-3D instructionsEnable use of odd-numbered single-precision registersUse paired-single floating-point instructionsWhen generating -mabicalls code, allow executables to use PLTs and copy relocations-mr10k-cache-barrier=SETTING Specify when r10k cache barriers should be insertedTry to allow the linker to turn PIC calls into direct callsWhen generating -mabicalls code, make the code suitable for use in shared librariesRestrict the use of hardware floating-point instructions to 32-bit operationsPrevent the use of all hardware floating-point instructionsOptimize lui/addiu address loadsAssume all symbols have 32-bit valuesUse synci instruction to invalidate i-cache-mtune=PROCESSOR Optimize the output for PROCESSORPut uninitialized constants in ROM (needs -membedded-data)Use Virtualization Application Specific instructionsPerform VR4130-specific alignment optimizationsUse eXtended Physical Address (XPA) instructionsCreate a position dependent executableDo not search standard system include directories (those specified with -isystem will still be used)Do not search standard system include directories for C++Do not look for object files in standard path-o <file> Place output into <file>Like -pedantic but issue them as errorsCreate a position independent executableGenerate C header of platform-specific featuresDo not display functions compiled or elapsed timeRemap file names when including filesStatically link the GNU Fortran helper library (libgfortran)Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendumDeprecated in favor of -std=c++11Conform to the ISO 2011 C++ standardConform to the ISO 2014(?) C++ draft standard (experimental and incomplete support)Conform to the ISO 2011 C standard (experimental and incomplete support)Deprecated in favor of -std=c11Conform to the ISO 1990 C standardConform to the ISO 1999 C standardDeprecated in favor of -std=c99Conform to the ISO Fortran 2003 standardConform to the ISO Fortran 2008 standardConform to the ISO Fortran 2008 standard including TS 29113Conform to the ISO Fortran 95 standardConform to nothing in particularConform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensionsDeprecated in favor of -std=gnu++11Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)Conform to the ISO 201y(7?) C++ draft standard with GNU extensions (experimental and incomplete support)Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)Deprecated in favor of -std=gnu11Conform to the ISO 1990 C standard with GNU extensionsConform to the ISO 1999 C standard with GNU extensionsDeprecated in favor of -std=gnu99Conform to the ISO 1990 C standard as amended in 1994Deprecated in favor of -std=iso9899:1999Accept extensions to support legacy codeEnable traditional preprocessing-trigraphs Support ISO C trigraphsDo not predefine system-specific and GCC-specific macrosDisplay the compiler's versionunknown excess precision style %qsunknown floating point contraction style %qsunrecognized function reorder value %qsKnown MIPS ABIs (for use with the -mabi= option):Known MIPS CPUs (for use with the -march= and -mtune= options):Policies available for use with -mcompact-branches=Valid arguments to -mcode-readable=:Known MIPS IEEE 754 settings (for use with the -mabs= and -mnan= options):Known MIPS ISA levels (for use with the -mips option):Valid arguments to -mr10k-cache-barrier=:unrecognized visibility value %qsunknown vectorizer cost model %qsunknown vtable verify initialization priority %qs/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/vec.c/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/hooks.c%s: all warnings being treated as errors%s: some warnings being treated as errorsIn file included from %r%s:%d:%d%RIn file included from %r%s:%d%R,
/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin/
H A Dx86_64-linux-android-gcc-4.9.x4123 All options with the desired characteristics have already been displayedThe following options are not documenteddebug format "%s" conflicts with prior selectionunrecognised debug output level "%s"debug output level %s is too highargument %qs to %<-femit-struct-debug-detailed%> unknown%<-femit-struct-debug-detailed=dir:...%> must allow at least as much as %<-femit-struct-debug-detailed=ind:...%>argument %qs to %<-femit-struct-debug-detailed%> not recognizedargument to %<-O%> should be a non-negative integer, %<g%>, %<s%> or %<fast%>section anchors must be disabled when unit-at-a-time is disabledtoplevel reorder must be disabled when unit-at-a-time is disabledtransactional memory is not supported with non-call exceptionssection anchors must be disabled when toplevel reorder is disabled-freorder-blocks-and-partition does not work with exceptions on this architecture-freorder-blocks-and-partition does not support unwind info on this architecture-freorder-blocks-and-partition does not work on this architecture-fno-fat-lto-objects are supported only with linker pluginonly one -flto-partition value can be specified%<-fsplit-stack%> is not supported by this compiler configurationDebug generation via -g option disabled under -fripa -fprofile-generate (use -fripa-allow-debug to override)-fsanitize=address is incompatible with -fsanitize=kernel-address-fsanitize=address and -fsanitize=kernel-address are incompatible with -fsanitize=thread%s: --param arguments should be of the form NAME=VALUE--help argument %q.*s is ambiguous, please be more specificunrecognized argument to --help= option: %q.*sgetting core file size maximum limit: %msetting core file size limit to maximum: %munrecognized gcc debugging option: %cstructure alignment must be a small power of two, not %dunknown stack check parameter "%s"%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-gdwarf -g%s%> for debug leveldwarf version %d is not supportedunrecognized argument to -fsanitize= option: %q.*s/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/opts-common.ccommand line option %qs is not supported by this configurationargument to %qs should be a non-negative integerunrecognized argument in option %qsvalid arguments to %qs are: %s--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters--print-missing-file-dependencies--print-sysroot-headers-suffix-A<question>=<answer> Assert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>Do not discard comments in macro expansions-D<macro>[=<val>] Define a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1-F <dir> Add <dir> to the end of the main framework include pathPrint the name of header files as they are used-I <dir> Add <dir> to the end of the main include path-J<directory> Put MODULE files in 'directory'Generate make dependencies and compile-MF <file> Write dependency output to the given fileTreat missing header files as generated filesLike -M but ignore system header filesLike -MD but ignore system header filesGenerate phony targets for all headers-MQ <target> Add a MAKE-quoted targetmissing makefile target after %qs-MT <target> Add an unquoted target-O<number> Set optimization level to <number>Optimize for speed disregarding exact standards complianceOptimize for debugging experience rather than speed or sizeOptimize for space rather than speedDo not generate #line directivesThis switch is deprecated; use -Wextra insteadWarn about things that will change when compiling with an ABI-compliant compilerWarn if a subobject has an abi_tag attribute that the complete object type does not haveWarn about suspicious uses of memory addressesWarn about returning structures, unions or arrays-Waggressive-loop-optimizationsWarn if a loop with constant number of iterations triggers undefined behaviorWarn about possible aliasing of dummy argumentsWarn about alignment of COMMON blocksWarn about missing ampersand in continued character constantsWarn if an array is accessed out of boundsWarn about creation of array temporariesWarn whenever an Objective-C assignment is being intercepted by the garbage collectorWarn about inappropriate attribute usageWarn about casting functions to incompatible typesWarn when a built-in preprocessor macro is undefined or redefinedWarn about C constructs that are not in the common subset of C and C++Deprecated in favor of -Wc++11-compatWarn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011Warn if the type of a variable might be not interoperable with CWarn about pointer casts which increase alignmentWarn about casts which discard qualifiersWarn about subscripts whose type is "char"Warn about truncated character expressionsWarn about variables that might be changed by "longjmp" or "vfork"Warn about possibly nested block comments, and C++ comments spanning more than one physical lineWarn about equality comparisons involving REAL or COMPLEX expressionsWarn for conditionally-supported constructsWarn for implicit type conversions that may change a valueWarn about most implicit conversionsWarn for converting NULL from/to a non-pointer typeWarn in case profiles in -fprofile-use do not matchWarn when a #warning directive is encounteredWarn when all constructors and destructors are privateWarn about __TIME__, __DATE__ and __TIMESTAMP__ usageWarn when a declaration is found after a statementWarn when deleting a pointer to incomplete typeWarn about deleting polymorphic objects with non-virtual destructorsWarn if a deprecated compiler feature, class, method, or field is usedWarn about uses of __attribute__((deprecated)) declarationsWarn when an optimization pass is disabledWarn about compile-time integer division by zeroWarn about implicit conversions from "float" to "double"Warn about violations of Effective C++ style rulesWarn about an empty body in an if or else statementWarn about stray tokens after #elif and #endifWarn about comparison of different enum types-Werror-implicit-function-declarationThis switch is deprecated; use -Werror=implicit-function-declaration insteadTreat specified warning as errorPrint extra (possibly unwanted) warningsWarn if deprecated empty statements are foundExit on the first error occurredWarn for implicit type conversions that cause loss of floating point precisionWarn if testing floating point numbers for equalityDisable promoting warnings to errorsWarn about printf/scanf/strftime/strfmon format string anomaliesWarn about format strings that contain NUL bytesWarn if passing too many arguments to a function for its format stringWarn about format strings that are not literalsWarn about possible security problems with format functionsWarn about strftime formats yielding 2-digit yearsWarn about zero-length formats-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytesWarn when attempting to free a non-heap objectWarn about function call eliminationWarn whenever type qualifiers are ignored.Warn about implicit declarations-Wimplicit-function-declarationWarn about implicit function declarationsWarn when a declaration does not specify a typeWarn about calls with implicit interfaceWarn about called procedures not explicitly declaredWarn about C++11 inheriting constructors when the base has a variadic constructorWarn about variables which are initialized to themselvesWarn when an inlined function cannot be inlinedWarn when there is a cast to a pointer from an integer of a different sizeWarn if a user-procedure has the same name as an intrinsicWarn on intrinsics not part of the selected standardWarn when an atomic memory model parameter is known to be outside the valid range.Warn about invalid uses of the "offsetof" macroWarn about PCH files that are found but not usedWarn when a jump misses a variable initialization-Wlarger-than=<number> Warn if an object is larger than <number> bytesWarn about truncated source linesWarn when a string or character literal is followed by a ud-suffix which does not begin with an underscore.Warn when a logical operator is suspiciously always evaluating to true or falseDo not warn about using "long long" when -pedanticWarn about suspicious declarations of "main"Warn about maybe uninitialized automatic variablesWarn about possibly missing braces around initializersWarn about global functions without previous declarationsWarn about missing fields in struct initializersWarn about user-specified include directories that do not existWarn about function parameters declared without a type specifier in K&R-style functionsWarn about global functions without prototypesswitch %qs is no longer supportedWarn about use of multi-character character constantsWarn about narrowing conversions within { } that are ill-formed in C++11Warn about "extern" declarations not at file scopeWarn when a noexcept expression evaluates to false even though the expression can't actually throwWarn when non-templatized friend functions are declared within a templateWarn about non-virtual destructorsWarn about NULL being passed to argument slots marked as requiring non-NULL-Wnormalized=<id|nfc|nfkc> Warn about non-normalised Unicode stringsWarn if a C-style cast is used in a programWarn for obsolescent usage in a declarationWarn if an old-style parameter definition is usedWarn if a simd directive is overridden by the vectorizer cost modelWarn if .class files are out of dateWarn about overflow in arithmetic expressionsWarn if a string is longer than the maximum portable length specified by the standardWarn about overloaded virtual function namesWarn about overriding initializers without side effectsWarn when the packed attribute has no effect on struct layoutWarn about packed bit-fields whose offset changed in GCC 4.4Warn when padding is required to align structure membersWarn about possibly missing parenthesesIssue warnings needed for strict compliance to the standardWarn when converting the type of pointers to member functionsWarn about function pointer arithmeticWarn when a pointer differs in signedness in an assignmentWarn when a pointer is cast to an integer of a different sizeWarn for -I and -L options using system directories if cross compilingWarn if a property for an Objective-C object has no assign semantics specifiedWarn if inherited methods are unimplementedWarn about real-literal-constants with 'q' exponent-letterWarn when a left-hand-side array variable is reallocatedWarn when a left-hand-side variable is reallocatedWarn about multiple declarations of the same objectWarn if modifiers are specified when not necessaryWarn when the compiler reorders codeWarn about returning a pointer/reference to a local or temporary variable.Warn whenever a function's return type defaults to "int" (C), or about inconsistent return types (C++)Warn if primary and auxiliary modules have mismatched command line optionsWarn if a selector has multiple methodsWarn when a variable is assigned to itselfWarn when a variable of a non-POD type is assigned to itselfWarn about possible violations of sequence point rulesWarn when one local variable shadows anotherWarn when one local variable shadows another local variable or parameter of compatible typeWarn when one local variable shadows another local variable or parameterWarn about signed-unsigned comparisonsWarn for implicit type conversions between signed and unsigned integersWarn when overload promotes from unsigned to signedWarn when not issuing stack smashing protection for some reasonWarn if stack usage might be larger than specified amountWarn about code which might break strict aliasing rulesWarn about uncasted NULL used as sentinelWarn about optimizations that assume that signed overflow is undefinedWarn about unprototyped function declarationsWarn if type signatures of candidate methods do not match exactlyWarn about functions which might be candidates for __attribute__((const))Warn about functions which might be candidates for format attributesWarn about functions which might be candidates for __attribute__((noreturn))Warn about functions which might be candidates for __attribute__((pure))Warn about "suspicious" constructsWarn about enumerated switches, with no default, missing a caseWarn about enumerated switches missing a "default:" statementWarn about all enumerated switches missing a specific caseWarn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are usedDeprecated. This switch has no effectDo not suppress warnings from system headersPermit nonconforming uses of the tab characterWarn if the pointer in a pointer assignment might outlive its target-Wthread-mismatched-lock-acq-relWarn about mismatched lock acquisition and release-Wthread-mismatched-lock-orderWarn about lock acquisition order inconsistent with what specified in the attributesWarn about a lock being acquired recursivelyWarn about potential thread safety issues when the code is annotated with thread safety attributesDoes nothing. For compatibility with clang thread safety analysis.Warn about function calls not properly protected by locks specified in the attributesWarn about shared variables not properly protected by locks specified in the attributes-Wthread-unsupported-lock-nameWarn about uses of unsupported lock names in attributesWarn about features not present in traditional CWarn of prototypes causing type conversions different from what would happen in the absence of prototypeWarn whenever a trampoline is generatedWarn if trigraphs are encountered that might affect the meaning of the programWarn if a comparison is always true or always false due to the limited range of the data typeWarn about @selector()s without previously declared methodsWarn if an undefined macro is used in an #if directiveWarn about underflow of numerical constant expressionsWarn about uninitialized automatic variablesWarn about unrecognized pragmasDoes nothing. Preserved for backward compatibility.Warn if the loop cannot be optimized due to nontrivial assumptions.Warn about unsuffixed float constantsWarn when a function parameter is only set, otherwise unusedWarn when a variable is only set, otherwise unusedWarn about unused dummy arguments.Warn when a function is unusedWarn when typedefs locally defined in a function are not usedWarn about macros defined in the main file that are not usedWarn when a function parameter is unusedWarn if a caller of a function, marked with attribute warn_unused_result, does not use its return valueWarn when an expression value is unusedWarn when a variable is unusedWarn about questionable usage of the macros used to retrieve variable argumentsWarn about using variadic macros-Wvector-operation-performanceWarn when a vector operation is compiled outside the SIMDWarn if a virtual base has a non-trivial move assignment operatorWarn if a variable length array is usedWarn when a register variable is declared volatileIn C++, nonzero means warn about deprecated conversion from string literals to 'char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.-Wzero-as-null-pointer-constantWarn when a literal '0' is used as null pointerA synonym for -std=c89 (for C) or -std=c++98 (for C++)-aux-info <file> Emit declaration information into <file>-d<letters> Enable dumps from specific passes of the compiler-dumpbase <file> Set the file basename to be used for dumps-dumpdir <dir> Set the directory name to be used for dumps--CLASSPATH Deprecated; use --classpath insteadGenerate position-independent code if possible (large mode)Generate position-independent code for executables if possible (large mode)Enforce class member access control semantics-fada-spec-parent=unit Dump Ada specs as child units of given parent-faggressive-function-eliminationEliminate multiple function invokations also for impure functions-faggressive-loop-optimizationsAggressively optimize loops using language constraintsEnable alignment of COMMON blocksAlign labels which are only reached by jumpingAll intrinsics procedures are available regardless of selected standard-fallow-parameterless-variadic-functionsAllow variadic functions without named parameterPermit the use of the assert keywordAllow optimization for floating-point arithmetic which may change the result of the operation due to rounding.Generate unwind tables that are exact at each instruction boundaryGenerate auto-inc/dec instructionsUse sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'.Whether to assume the sample profile is accurate.-fauto-profile-record-coverage-in-elfWhether to record annotation coverage info in elf.Use sample profile information for call graph node weights. The profile file is specified in the argument.Do not treat local variables and COMMON blocks as if they were named in SAVE statementsSpecify that backslash in string introduces an escape characterProduce a backtrace when a runtime error is encountered-fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS--bootclasspath=<path> Replace system pathGenerated should be loaded by bootstrap loaderGenerate code to check bounds before indexing arraysReplace add, compare, branch with branch on count registerUse profiling information for branch probabilitiesPerform branch target load optimization before prologue / epilogue threading-fbranch-target-load-optimize2Perform branch target load optimization after prologue / epilogue threadingRestrict target load migration not to re-use registers in any basic block-fcall-saved-<register> Mark <register> as being preserved across functions-fcall-used-<register> Mark <register> as being corrupted by function callsSave registers around function callsWhere shorter, use canonicalized paths to systems headers.Produce a warning at runtime if a array temporary has been created for a procedure argumentCompare branch prediction result and autofdo profile information, store the result in a section in the generated elf file.-fcheck-branch-annotation-threshold=The number of executions a basic block needs to reach before GCC dumps its branch prediction information with -fcheck-branch-annotation.Compare the results of several data dependence analyzers.Check the return value of new in C++Generate checks for references to NULL-fcheck=[...] Specify which runtime checks are to be performed--classpath=<path> Set class path-fcoarray=[...] Specify which coarray parallelization should be usedLooks for opportunities to reduce stack adjustments and stack references.Do not put uninitialized globals in the common sectionRun only the second compilation of -fcompare-debug-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dumpPerform comparison elimination after register allocation has finishedAllow the arguments of the '?' operator to have different typesDoes nothing. Preserved for backward compatibility.Do not perform optimizations increasing noticeably stack usage-fconst-string-class=<name> Use class <name> for constant stringsno class name specified with %qs-fconstexpr-depth=<number> Specify maximum constexpr recursion depthUse big-endian format for unformatted filesUse little-endian format for unformatted filesUse native format for unformatted filesSwap endianness for unformatted filesPerform a register copy-propagation optimization passUse the Cray Pointer extensionPerform cross-jumping optimizationWhen running CSE, follow jumps to their targetsComplex multiplication and division follow Fortran rulesOmit range reduction step when performing complex divisionIgnore 'D' in column one in fixed formTreat lines with 'D' in column one as commentsPlace data items into their own sectionList all available debugging counters with their limits and counts.-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. Use the RTL dead code elimination passEmit debug annotations during preprocessingMap one directory name to another in debug informationOutput .debug_types section when using DWARF v4 debuginfo.Factor complex constructors and destructors to favor space over speed-fdeduce-init-list enable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-listSet the default double precision kind to an 8 byte wide typeSet the default integer kind to an 8 byte wide typeMake functions no-throw/noexcept by defaultSet the default real kind to an 8 byte wide typeDefer popping functions args from stack until laterAttempt to fill delay slots of branch instructionsDelete dead instructions that may throw exceptionsDelete useless null pointer checksTry to convert virtual calls to direct ones.Perform speculative devirtualization-fdiagnostics-color=[never|always|auto] Colorize diagnosticsShow the source line with a caret indicating the column-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnosticsAmend appropriate diagnostic messages with the command line option that controls them-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization passAllow dollar signs in entity namesPermit '$' as an identifier characterUse the RTL dead store elimination pass-fdump-<type> Dump various compiler internals to a fileWrite all declarations as Ada code transitivelyWrite all declarations as Ada code for the given file only-fdump-final-insns=filename Dump to filename the insns at the end of translationDisplay the code tree after front end optimizationDisplay the code tree after parsing-fdump-go-spec=filename Write all declarations to file as Go codeSuppress output of addresses in debugging dumpsDisplay the code tree after parsing; deprecated optionSuppress output of instruction numbers, line number notes and addresses in debugging dumpsSuppress output of previous and next insn numbers in debugging dumpsEnable CFI tables via GAS assembler directives.Perform DWARF2 duplicate elimination-feliminate-unused-debug-symbolsPerform unused type elimination in debug info-feliminate-unused-debug-typesDo not suppress C++ class debug information.Print to stderr the mapping from module name and function id to assembler function name when -ftest-coverage, -fprofile-generate or -fprofile-use are active, for use in correlating function ids in gcda files with the function name.-femit-struct-debug-baseonly Aggressive reduced debug info for structs-femit-struct-debug-detailed=<spec-list> Detailed reduced debug info for structs-femit-struct-debug-reduced Conservative reduced debug info for structs-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass--encoding=<encoding> Choose input encoding (defaults from your locale)Generate code to check exception specifications-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision-fexec-charset=<cset> Convert all strings and character constants to character set <cset>Perform a number of minor, expensive optimizationsInterpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal.--extdirs=<path> Set the extension directory pathPermit universal character names (\u and \U) in identifiersSupport dynamic initialization of thread-local variables in a different translation unitSpecify that an external BLAS library should be used for matmul calls on large-size arraysOutput lto objects containing both the intermediate language and binary output.Input file is a file with a list of filenames to compileAssume no NaNs or infinities are generated-ffixed-<register> Mark <register> as being unavailable to the compilerAssume that the source file is fixed form-ffixed-line-length-<n> Use n as character line width in fixed modeAllow arbitrary character line width in fixed modeDon't allocate floats and doubles in extended-precision registersScope of for-init-statement variables is local to the loopAlways check for non gcj generated classes archivesPerform a forward propagation pass on RTL-ffp-contract=[off|on|fast] Perform floating-point expression contraction.-ffpe-summary=[...] Print summary of floating point exceptions-ffpe-trap=[...] Stop on following floating point exceptionsAssume that the source file is free form-ffree-line-length-<n> Use n as character line width in free modeAllow arbitrary character line width in free modeDo not assume that standard C libraries and "main" existInject friend functions into enclosing namespace-ffunction-attribute-list=attribute:name,... Add attribute to named functionsAllow function addresses to be held in registersPlace each function into its own sectionPerform global common subexpression eliminationPerform global common subexpression elimination after register allocation has finishedPerform redundant load after store elimination in global common subexpression eliminationPerform enhanced load motion during global common subexpression eliminationPerform store motion after global common subexpression eliminationRecognize GNU-defined keywordsGenerate code for GNU runtime environmentEnable support for GNU transactional memoryUse STB_GNU_UNIQUE if supported by the assemblerUse traditional GNU semantics for inline functionsAdd explicit checks for division overflow in INT_MIN / -1Add explicit checks for division by zero-fgo-dump-<type> Dump Go frontend internal information-fgo-optimize-<type> Turn on optimization passes in the frontend-fgo-pkgpath=<string> Set Go package path-fgo-prefix=<string> Set package-specific prefix for exported Go names-fgo-relative-import-path=<path> Treat a relative import as relative to pathEnable in and out of Graphite representationEnable Graphite Identity transformationEnable guessing of branch probabilities-fhandle-exceptions has been renamed -fexceptions (and is now on by default)Assume the runtime uses a hash table to map an object to its synchronization structureEnable hoisting adjacent loads to encourage generating conditional move instructionsAssume normal C execution environmentPerform conversion of conditional jumps to branchless equivalentsPerform conversion of conditional jumps to conditional executionExport functions even if they can be inlinedEmit implicit instantiations of inline templatesSpecify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statementsEmit implicit instantiations of templatesGenerate instances of Class at runtimeUse offset tables for virtual method callsDo not generate .size directives-finit-character=<n> Initialize local character variables to ASCII value n-finit-integer=<n> Initialize local integer variables to nInitialize local variables to zero (from g77)-finit-logical=<true|false> Initialize local logical variables-finit-real=<zero|nan|inf|-inf> Initialize local real variablesEnable inlining of function declared "inline", disabling disables all inliningInline __atomic operations when a lock free instruction sequence is available.Integrate functions not declared "inline" into their callers when profitable-finline-functions-called-onceIntegrate functions only required by their single caller-finline-limit=<number> Limit the size of inlined functions to <number>Integrate functions into their callers when code size is known not to grow-finput-charset=<cset> Specify the default character set for source filesInstrument function entry and exit with profiling calls-finstrument-functions-exclude-file-list=-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files-finstrument-functions-exclude-function-list=-finstrument-functions-exclude-function-list=name,... Do not instrument listed functionsInterpret any INTEGER(4) as an INTEGER(8)Specify where to find the compiled intrinsic modulesPerform interprocedural constant propagationPerform cloning to make Interprocedural constant propagation strongerPerform interprocedural profile propagationPerform interprocedural points-to analysisDiscover pure and const functionsDiscover readonly and non addressable static variablesPerform interprocedural reduction of aggregates-fira-algorithm=[CB|priority] Set the used IRA algorithmUse IRA based register pressure calculation in RTL hoist optimizations.Use IRA based register pressure calculation in RTL loop optimizations.-fira-region=[one|all|mixed] Set regions for IRAShare slots for saving different hard registers.Share stack slots for spilled pseudo-registers.-fira-verbose=<number> Control IRA's level of diagnostic messages.-fisolate-erroneous-paths-attributeDetect paths which trigger erroneous or undefined behaviour due a NULL value being used in a way which is forbidden by a returns_nonnull or nonnull attribute. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap. -fisolate-erroneous-paths-dereferenceDetect paths which trigger erroneous or undefined behaviour due to dereferencing a NULL pointer. Isolate those paths from the main control flow and turn the statement with erroneous or undefined behaviour into a trap.Optimize induction variables on treesAssume native functions are implemented using JNIUse jump tables for sufficiently large switch statementsDon't emit dllexported inline functions unless neededGenerate code for functions even if they are fully inlinedEmit static const variables even if they are not usedAllow implicit conversions between vectors with differing numbers of subparts and/or differing element types.Give external symbols a leading underscoreTell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes.Relief of register pressure through live range shrinkageEnable Loop Blocking transformationEnable Loop Interchange transformationEnable the ISL based loop nest optimizerEnable Loop Strip Mining transformationEnable link-time optimization.-flto-compression-level=<number> Use zlib compression level <number> for ILPartition symbols and vars at linktime based on object files they originate fromPartition functions and vars at linktime into approximately same sized bucketsPut every symbol into separate partitionDisable partioning and streamingReport various link-time optimization statisticsReport various link-time optimization statistics for WPA onlyLink-time optimization with number of parallel jobs or jobserver.Run the link-time optimizer in local transformation (LTRANS) mode.Specify a file to which a list of files output by LTRANS is written.Set errno after built-in math functions-fmax-array-constructor=<n> Maximum number of objects in an array constructor-fmax-errors=<number> Maximum number of errors to report-fmax-identifier-length=<n> Maximum identifier length-fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack-fmax-subrecord-length=<n> Maximum length for subrecordsReport on permanent memory allocationReport on permanent memory allocation in WPA onlyAttempt to merge identical constants and constant variablesAttempt to merge identical constants across compilation unitsAttempt to merge identical debug strings across compilation units-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrappingSet default accessibility of module entities to PRIVATE.Perform SMS based modulo scheduling before the first scheduling passPerform SMS based modulo scheduling with register moves allowedMove loop invariant computations out of loopsDon't warn about uses of Microsoft extensionsGenerate code for NeXT (Apple Mac OS X) runtime environmentAssume that receivers of Objective-C messages may be nilEnables the unlimited vectorizer cost model. Preserved for backward compatibility.Support synchronous non-call exceptionsTreat a throw() exception specification as noexcept to improve code sizeSpecify which ABI to use for Objective-C family code and meta-data generation.Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if neededAllow fast jumps to the message dispatcherEnable Objective-C exception and synchronization syntaxEnable garbage collection (GC) in Objective-C/Objective-C++ programsEnable inline checks for nil receivers with the NeXT runtime and ABI version 2.Enable Objective-C setjmp exception handling runtimeConform to the Objective-C 1.0 language as implemented in GCC 4.0When possible do not generate stack framesEnable OpenMP (implies -frecursive in Fortran)Enable OpenMP's SIMD directivesRecognize C++ keywords like "compl" and "xor"Enable all optimization info dumps on stderr-fopt-info[-<type>=filename] Dump compiler optimization detailsOptimize sibling and tail recursive calls-foptimize-static-class-initializationEnable optimization of static class initialization codeEnable string length optimizations on treesTry to lay out derived types as compactly as possiblePack structure members together without holes-fpack-struct=<number> Set initial maximum structure member alignmentReturn small aggregates in memory, not registersLook for and use PCH files even when preprocessingLimit non-const non-FP loop peeling under profile estimates of large code footprintEnable machine specific peephole optimizationsEnable an RTL peephole pass before sched2Downgrade conformance errors to warningsGenerate position-independent code if possible (small mode)Generate position-independent code for executables if possible (small mode)Enable Plan 9 language extensionsUse PLT for PIC calls (-fno-plt: load the address from GOT at call site)-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>Report on memory allocation before interprocedural optimizationRun predictive commoning optimization.Generate prefetch instructions, if available, for arrays in loopsTreat the input file as already preprocessed-fno-pretty-templates Do not pretty-print template specializations as the template signature followed by the argumentsEnable basic program profiling codeInsert arc-based program profiling codeEnable correction of flow inconsistent profile data inputSet the top-level directory for storing the profile data. The default is 'pwd'.Dump CFG profile for comparison.Enable common options for generating profile info for profile feedback directed optimizationsfprofile-generate-atomic=[0..3] Atomically increments for profile counters.-fprofile-generate-buildinfo=filename Read build info to include in gcda file from filenameTurn on instrumentation sampling with -fprofile-generate with rate set by --param profile-generate-sampling-rate or environment variable GCOV_SAMPLING_RATEEnable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=Enable function reordering that improves code placementReport on consistency of profileSpecify a substring to be stripped from the profile base file nameEnable common options for performing profile feedback directed optimizationsEnable common options for performing profile feedback directed optimizations, and set -fprofile-dir=Insert code to profile values of expressionsProtect parentheses in expressions-frandom-seed=<string> Make compile reproducible using <string>Enable range checking during compilationInterpret any REAL(4) as a REAL(10)Interpret any REAL(4) as a REAL(16)Interpret any REAL(4) as a REAL(8)Interpret any REAL(8) as a REAL(10)Interpret any REAL(8) as a REAL(16)Interpret any REAL(8) as a REAL(4)Reallocate the LHS in assignmentsSame as -fassociative-math for expressions which include division.-frecord-compilation-info-in-elfRecord the compiler optimizations in a .gnu.switches.text section.Record gcc command line switches in the object file.Use a 4-byte record marker for unformatted filesUse an 8-byte record marker for unformatted filesAllocate local variables on the stack to allow indirect recursionReduce the amount of reflection meta-data generatedTurn on Redundant Extensions Elimination pass.Return small aggregates in registersPerform a register renaming optimization passReorder basic blocks to improve code placement-freorder-blocks-and-partitionReorder basic blocks and partition into hot and cold sectionsReorder functions to improve code placement-freorder-functions=[callgraph] Select the scheme for function reordering. This invokes a linker plugin. Generate .gnu.callgraph.text sections listing callees and edge counts.Copy array sections into a contiguous block on procedure entryUsed in Fix-and-Continue mode to indicate that object files may be swapped in at runtimeEnable automatic template instantiationFunctions which return values must end with return statementsAdd a common subexpression elimination pass after loop optimizations-freschedule-modulo-scheduled-loopsEnable/Disable the traditional scheduling in loops that already passed modulo schedulingPerform Dynamic Inter-Procedural Analysis.Allow -g enablement for -fripa -fprofile-generate compiles.Don't import an auxiliary module if it contains asm statementsDon't import an auxiliary module if the command line options mismatch with the primary moduleSubstitute substring in include paths with a new string to allow reuse profile data-fripa-no-promote-always-inline-funcDon't promote always inline static functions assuming they will be inlined and no copy is needed.Disable optimizations that assume default FP rounding behaviorGenerate run time type descriptor informationEnable coverage-guided fuzzing code instrumentation. Inserts call to __sanitizer_cov_trace_pc into every basic block.-fsched-critical-path-heuristicEnable the critical path heuristic in the schedulerEnable the dependent count heuristic in the schedulerEnable the group heuristic in the schedulerEnable scheduling across basic blocksEnable the last instruction heuristic in the schedulerEnable register pressure sensitive insn schedulingEnable the rank heuristic in the schedulerAllow speculative motion of non-loadsEnable the speculative instruction heuristic in the schedulerAllow speculative motion of some loadsAllow speculative motion of more loadsAllow premature scheduling of queued insnsSet dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled-fsched-verbose=<number> Set the verbosity level of the schedulerIf scheduling post reload, do superblock schedulingReschedule instructions before register allocationReschedule instructions after register allocationAppend a second underscore if the name already contains an underscoreAccess data in the same section from shared anchor pointsPerform software pipelining of inner loops during selective scheduling-fsel-sched-pipelining-outer-loopsPerform software pipelining of outer loops during selective scheduling-fsel-sched-reschedule-pipelinedReschedule pipelined regions without pipeliningSchedule instructions using selective scheduling algorithmRun selective scheduling after reloadUse the same size for double as for floatUse the narrowest integer type possible for enumeration typesForce the underlying type for "wchar_t" to be "unsigned short"Show column numbers in diagnostics, when available. Default onEmit function prologues only before parts of the function that need it, rather than at the top of the function.Framepointer shrinkwrapping optimization.Apply negative sign to zero valuesDisable optimizations observable by IEEE signaling NaNsWhen "signed" or "unsigned" is not given make the bitfield signedDisable floating point optimizations that ignore the IEEE signedness of zeroSpecifies the vectorization cost model for code marked with a simd directiveConvert floating point constants to single precision constantsSupport delete operator with objetc's size as the second parameter.Set the source language versionSplit lifetimes of induction variables when loops are unrolledGenerate discontiguous stack framesSplit wide types into independent registersPut all local arrays on stack.Insert stack checking code into the program. Same as -fstack-check=specific-fstack-check=[no|generic|specific] Insert stack checking code into the program-fstack-limit-register=<register> Trap if the stack goes past <register>-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>Use propolice as a stack protection methodUse a stack protection method for every functionUse a smart stack protection method for certain functions-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.Output stack usage information on a per-function basisDisplay statistics accumulated during compilationEnable assignability checks for stores into object arraysAssume strict aliasing rules applyPerform transformations based on enum precisionAssume that values of enumeration type are always within the minimum range of that typeTreat signed overflow as undefinedForce bitfield accesses to match their type widthImplement __atomic operations via libcalls to legacy __sync functionsCheck for syntax errors, then stop-ftabstop=<number> Distance between tab stops for column reportingSet the maximum number of template instantiation notes for a single warning or error-ftemplate-depth=<number> Specify maximum template instantiation depthCreate data files needed by "gcov"Perform jump threading optimizations-fno-threadsafe-statics Do not generate thread-safe code for initializing local staticsReport the time taken by each compiler pass-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation modelReorder top level functions, variables, and asmsPerform superblock formation via tail duplication-ftrack-macro-expansion=<0|1|2> Track locations of tokens coming from macro expansion and display them in error messagesAssume floating-point operations can trapTrap for signed overflow in addition, subtraction and multiplicationEnable SSA-BIT-CCP optimization on treesEnable conditional dead code elimination for builtin callsEnable SSA-CCP optimization on treesEnable loop header copying on treesEnable coalescing of copy-related user variables that are inlinedEnable coalescing of all copy-related user variablesEnable copy propagation on treesReplace SSA temporaries with better names in copiesTransform condition stores into unconditional onesEnable SSA dead code elimination optimization on treesEnable dominator optimizationsEnable forward propagation on treesEnable Full Redundancy Elimination (FRE) on trees-ftree-loop-distribute-patternsEnable loop distribution for patterns transformed into a library callEnable loop distribution on treesConvert conditional jumps in innermost loops to branchless equivalentsAlso if-convert conditional jumps containing memory writesEnable loop invariant motion on treesCreate canonical induction variables in loopsEnable loop interchange transforms. Same as -floop-interchangeEnable loop optimizations on tree levelEnable loop vectorization on treesPerform live range splitting during the SSA->normal passEnable automatic parallelization of loopsIn SSA-PRE optimization on trees, enable partial-partial redundancy eliminationEnable hoisting loads from conditional pointers.Enable SSA-PRE optimization on treesPerform function-local points-to analysis on trees.Enable reassociation on tree levelEnable copy propagation of scalar-evolution information.Enable SSA code sinking on treesEnable basic block vectorization (SLP) on treesPerform straight-line strength reductionPerform scalar replacement of aggregatesPerform conversions of switch initializations.Replace temporary expressions in the SSA->normal passPerform Value Range Propagation on treesWhen generating two-level line tables in DWARF (experimental), add linkage names for all functions (not just inlined functions).Use two-level line tables in DWARF (experimental).Append underscores to externally visible namesCompile whole compilation unit at a timePerform loop unrolling for all loopsLimit non-const non-FP loop unrolling under profile estimates of large code footprintPerform loop unrolling when iteration count is knownAllow loop optimizations to assume that the loops behave in normal wayAllow math optimizations that may violate IEEE or ISO standardsWhen "signed" or "unsigned" is not given make the bitfield unsignedMake "char" unsigned by defaultJust generate unwind tables for exception handlingGenerate code for built-in atomic operationsGenerate code for the Boehm GCUse __cxa_atexit to register destructorsUse __cxa_get_exception_ptr in exception handlingCall a library routine to do integer divisionsUse the bfd linker instead of the default linkerUse the gold linker instead of the default linkerUse the mcld linker instead of the default linkerPerform variable tracking by annotating assignments-fvar-tracking-assignments-toggleToggle -fvar-tracking-assignmentsPerform variable tracking and also tag variables that are uninitialized-fvariable-expansion-in-unrollerApply variable expansion when loops are unrolledEnables the dynamic vectorizer cost model. Preserved for backward compatibility.Specifies the cost model for vectorizationAdd extra commentary to assembler outputMarks all inlined functions and methods as having hidden visibilityChanges visibility to match Microsoft Visual Studio by default-fvisibility=[default|internal|hidden|protected] Set the default symbol visibilityUse expression value profiles in optimizationsValidate vtable pointers before using them.Output vtable verification counters.Output vtable verification pointer sets information.Emit common-like symbols as weak symbolsConstruct webs and split unrelated uses of single variablePerform whole program optimizations-fwide-exec-charset=<cset> Convert all wide strings and character constants to character set <cset>Generate a #line directive pointing at the current working directoryRun the link-time optimizer in whole program analysis (WPA) mode.Whole program analysis (WPA) mode with number of parallel jobs specified.Assume signed arithmetic overflow wraps aroundPut zero initialized data in the bss sectionGenerate lazy class lookup (via objc_getClass()) for use in Zero-Link modeGenerate debug information in default formatGenerate debug information in COFF formatGenerate debug information in default version of DWARF formatGenerate debug information in DWARF v2 (or later) formatDump declarations to a .decl fileGenerate debug information in default extended formatGenerate DWARF pubnames and pubtypes sections with GNU extensions.Generate DWARF line number tables and no other debug sectionsGenerate debug information at level 1 with minimal line table-gnat<options> Specify options to GNATSet name of output ALI file (internal switch)Don't generate DWARF pubnames and pubtypes sections.Don't record gcc command line switches in DWARF DW_AT_producer.Don't generate debug information in separate .dwo filesEmit DWARF additions beyond selected versionGenerate DWARF pubnames and pubtypes sections.Record gcc command line switches in DWARF DW_AT_producer.Generate debug information in separate .dwo filesGenerate debug information in STABS formatGenerate debug information in extended STABS formatDon't emit DWARF additions beyond selected versionToggle debug information generationGenerate debug information in VMS formatGenerate debug information in XCOFF formatGenerate debug information in extended XCOFF format-idirafter <dir> Add <dir> to the end of the system include path-imacros <file> Accept definition of macros in <file>-imultiarch <dir> Set <dir> to be the multiarch include subdirectory-imultilib <dir> Set <dir> to be the multilib include subdirectory-include <file> Include the contents of <file> before other files-iplugindir=<dir> Set <dir> to be the default plugin directory-iprefix <path> Specify <path> as a prefix for next two options-iquote <dir> Add <dir> to the end of the quote include path-isysroot <dir> Set <dir> to be the system root directory-isystem <dir> Add <dir> to the start of the system include path-iwithprefix <dir> Add <dir> to the end of the system include path-iwithprefixbefore <dir> Add <dir> to the end of the main include pathSupport 3DNow! built-in functionsSupport Athlon 3Dnow! built-in functionsExpand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time checkGenerate code that conforms to the given ABISupport code generation of Advanced Bit Manipulation (ABM) instructions.Reserve space for outgoing arguments in the function prologueSupport flag-preserving add-carry instructionsSupport AES built-in functions and code generationAlign some doubles on dword boundaryFunction starts are aligned to this power of 2Jump targets are aligned to this power of 2Loop code aligned to this power of 2Align destination of the string operationsGenerate code for the Android platform.Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generationSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generationSplit 32-byte AVX unaligned load-mavx256-split-unaligned-storeSplit 32-byte AVX unaligned storeSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generationSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generationSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generationSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generationSupport BMI built-in functions and code generationSupport BMI2 built-in functions and code generationBranches are this expensive (1-5, arbitrary units)Generate cld instruction in the function prologue.%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> insteadSupport code generation of crc32 instruction.Support code generation of cmpxchg16b instruction.Do dispatch scheduling if processor is bdver1 or bdver2 or bdver3 or bdver4 and Haifa scheduling is selected.Support F16C built-in functions and code generationGenerate sin, cos, sqrt for FPUEmit profiling counter call at function entry before prologue.Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generationSupport FMA4 built-in functions and code generation Always use Dynamic Realigned Argument Pointer (DRAP) to realign stackReturn values of functions in FPU registersGenerate floating point mathematics using given instruction setSupport FSGSBASE built-in functions and code generation%<-mfused-madd%> is deprecated; use %<-ffp-contract=%> insteadSupport FXSAVE and FXRSTOR instructionsSupport Hardware Lock Elision prefixesUse IEEE math for fp comparisonsAssume incoming stack aligned to this power of 2Inline all known string operations-minline-stringops-dynamicallyInline memset/memcpy string operations, but perform inline version only for small blocks%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> insteadData greater than given threshold will go into .ldata section in x86-64 medium modelSupport LWP built-in functions and code generation Support LZCNT built-in function and code generationSpecify memcpy expansion strategy when expected size is knownSpecify memset expansion strategy when expected size is knownSupport MMX built-in functionsSupport code generation of movbe instruction.Use native (MS) bitfield layout-mno-patch-functions-main-alwaysTreat 'main' as any other function and only patch it if it meets the criteria for loops and minimum number of instructions (for use with -mpatch-functions-for-instrumentation).Do not support SSE4.1 and SSE4.2 built-in functions and code generationOmit the frame pointer in leaf functions-mpatch-functions-for-instrumentationPatch function prologue and epilogue with custom NOPs for dynamic instrumentation. By default, functions with loops (controlled by -mpatch-functions-without-loop) or functions having instructions more than -mpatch-functions-min-instructions are patched.-mpatch-functions-ignore-loopsIgnore loops when deciding whether to patch a function for instrumentation (for use with -mpatch-functions-for-instrumentation).Set 80387 floating-point precision to 32-bitSet 80387 floating-point precision to 64-bitSet 80387 floating-point precision to 80-bitSupport PCLMUL built-in functions and code generationSupport code generation of popcnt instruction.Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.Attempt to keep stack aligned to this power of 2Support PREFETCHWT1 built-in functions and code generationUse push instructions to save outgoing argumentsSupport RDRND built-in functions and code generationGenerate reciprocals instead of divss and sqrtss.Control generation of reciprocal estimates.Use red-zone in the x86-64 codeNumber of registers used to pass integer argumentsSupport RTM built-in functions and code generationSupport code generation of sahf instruction in 64bit x86-64 code.Support SHA1 and SHA256 built-in functions and code generationSupport MMX and SSE built-in functions and code generationSupport MMX, SSE and SSE2 built-in functions and code generationEncode SSE instructions with VEX prefixSupport MMX, SSE, SSE2 and SSE3 built-in functions and code generationSupport MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generationSupport MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generationSupport MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generationUse SSE register passing conventions for SF and DF modeSupport MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generationUse given stack-protector guardChose strategy to generate stringop usingSupport TBM built-in functions and code generationUse given thread-local storage dialectUse direct references against %gs when accessing tls dataFine grain control of tune featuresReturn 8-byte vectors in memoryGenerate vzeroupper instruction before a transfer of control flow out of the function.Support XOP built-in functions and code generation Support XSAVE and XRSTOR instructionsCreate a position dependent executableDo not search standard system include directories (those specified with -isystem will still be used)Do not search standard system include directories for C++Do not look for object files in standard path-o <file> Place output into <file>Like -pedantic but issue them as errorsCreate a position independent executableGenerate C header of platform-specific featuresDo not display functions compiled or elapsed timeRemap file names when including filesStatically link the GNU Fortran helper library (libgfortran)Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendumDeprecated in favor of -std=c++11Conform to the ISO 2011 C++ standardConform to the ISO 2014(?) C++ draft standard (experimental and incomplete support)Conform to the ISO 2011 C standard (experimental and incomplete support)Deprecated in favor of -std=c11Conform to the ISO 1990 C standardConform to the ISO 1999 C standardDeprecated in favor of -std=c99Conform to the ISO Fortran 2003 standardConform to the ISO Fortran 2008 standardConform to the ISO Fortran 2008 standard including TS 29113Conform to the ISO Fortran 95 standardConform to nothing in particularConform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensionsDeprecated in favor of -std=gnu++11Conform to the ISO 2011 C++ standard with GNU extensions (experimental and incomplete support)Conform to the ISO 201y(7?) C++ draft standard with GNU extensions (experimental and incomplete support)Conform to the ISO 2011 C standard with GNU extensions (experimental and incomplete support)Deprecated in favor of -std=gnu11Conform to the ISO 1990 C standard with GNU extensionsConform to the ISO 1999 C standard with GNU extensionsDeprecated in favor of -std=gnu99Conform to the ISO 1990 C standard as amended in 1994Deprecated in favor of -std=iso9899:1999Accept extensions to support legacy codeEnable traditional preprocessing-trigraphs Support ISO C trigraphsDo not predefine system-specific and GCC-specific macrosDisplay the compiler's versionKnown assembler dialects (for use with the -masm-dialect= option):Known ABIs (for use with the -mabi= option):Known code models (for use with the -mcmodel= option):unknown excess precision style %qsunknown floating point contraction style %qsunrecognized function reorder value %qsKnown vectorization library ABIs (for use with the -mveclibabi= option):Known address mode (for use with the -maddress-mode= option):Known stack protector guard (for use with the -mstack-protector-guard= option):Valid arguments to -mstringop-strategy=:unrecognized visibility value %qsKnown TLS dialects (for use with the -mtls-dialect= option):unknown vectorizer cost model %qsunknown vtable verify initialization priority %qs/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/vec.c-malign-loops is obsolete, use -falign-loops-malign-loops=%d is not between 0 and %d-malign-jumps is obsolete, use -falign-jumps-malign-jumps=%d is not between 0 and %d-malign-functions is obsolete, use -falign-functions-malign-functions=%d is not between 0 and %d-mbranch-cost=%d is not between 0 and 5/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/gcc/hooks.c%s: all warnings being treated as errors%s: some warnings being treated as errorsIn file included from %r%s:%d:%d%RIn file included from %r%s:%d%R,

Completed in 1289 milliseconds